Ich hoffe, jemand kann mir mit meinem phantomJS Problem helfen. Ich benutze Version 1.9.8 auf Unix 64bit als Knoten, der zu einem Selen-Hub registriert, der auf jenkins läuft. Wenn ich zu einer HTML-Seite mit einem Link navigiere (der keine ID
oder name
hat, deshalb adressiere ich ihn über xpath
- Leider kann ich den HTML-Code nicht ändern, da es externe Eingabe ist), versuche ich darauf zu klicken um zur nächsten Seite zu gelangen. Mit Firefox-Treiber funktionierte dies ohne Probleme, und wenn ich einen lokalen Selen-Server (Windows, phantomJS v. 1.9.8) starte, funktioniert es auch.PhantomJS WebDriver kopflos: ".click" Methode hat keine Wirkung
Mein Code:
System.out.println("current url before click: " + getDriver().getCurrentUrl());
getDriver().findElement(By.xpath("//a")).click();
System.out.println("current url after click: " + getDriver().getCurrentUrl());
Ausgabe auf lokalen Selen (Fenster):
current url before click: https://initialpage.html
current url after click: https://www.my-link.com
Ausgabe auf Remote-Selen Raster (Unix):
current url before click: https://initialpage.html
current url after click: https://initialpage.html
Es gibt keinen Fehler oder ähnliches, es scheint nur wie der Fahrer auf der alten Seite bleibt. Ich habe bereits versucht, verschiedene phantomjs.cli.args
während die WebDriver instanziiert wird, das Hinzufügen mehrere thread.sleep()
‚s und click()
von
getDriver().navigate().to(getDriver().findElement(By.xpath("//a")).getAttribute("href"));
ersetzt aber der Ausgang bleibt gleich.
Gerade falls es hier ankommt, ist, wie ich instanziiert die WebDriver:
driver = new RemoteWebDriver(new URL("http://servername:4444/wd/hub"), DesiredCapabilities.phantomjs());
Ich schätze jede mögliche Hilfe, vielen Dank für die Mühe, Jungs! Wenn noch Fragen offen sind, zögern Sie nicht zu fragen! Danke im Voraus!
Das führt mich zu der Annahme, dass Sie nicht die gleiche PhantomJS-Version auf dem Server hatten. Vielleicht hatten Sie 1.9.7. Beachten Sie, dass PhantomJS 1.9.8, das über npm installiert wurde, eigentlich 1.9.7 ist, da ihre Versionierung beim Auftreten des Problems mit dem SSL-Protokoll nicht mehr funktionierte. –
Hallo, ich habe 1.9.8 von phantomjs.org heruntergeladen, entpackte es auf meinem Unix-Rechner und setzte es als phantomjs.binary.path-Variable auf meinen Selenknoten (der sich an einem Hub registriert). Was anders war, ist die Selenserver-Version (aber das sollte die Phantomjs-Version, die ich passiere, nicht beeinflussen, oder?) – user3017641
Hm, die Selenserverversion sollte hier keine Wirkung haben. –