2012-12-21 10 views
5

Ich habe mich gefragt:Selen WebDriver Unterstützung für JavaFX 2.0 Webkit oder QT5 Webkit (Ziel: kopflos Webkit)

  • Hat jemand Gedanken, die WebDriver-Schnittstelle für einen eingebetteten JavaFX 2.0 Webkit-Browser oder für die neuen Durchführungs QT5 - Webkit.
  • Hat jemand einige Hinweise auf einige Github/Bitbucket/GoogleCode-Projekte in diese Richtung?

Warum? Dies würde einen anderen Cross-Plattform-Browser hinzufügen und hoffentlich kopflos mit einer neuen Webkit-Rendering-Engine sein. Momentan benutze ich SafariDriver auf MacOSX oder ChromeDriver. Das funktioniert irgendwie, aber Chromedriver beißt mich oft, wenn Chrome es Autoupdate macht und bricht den Chromtreiber.

Das Projekt, das für eine kopflose Webkit-Implementierung (einschließlich der Erstellung von Screenshots) am nächsten kommt, ist Phantomjs (QT-4.8 Webkit) + Ghostdriver (Webdriver-Addon für Phantomjs als JavaScript-Implementierung). Im Moment hat Phantomjs seine Eigenheiten mit Schriftarten und Silbentrennung (­) Rendering.

Beim Testen der QT5-Browser-Beispiele scheint das Font/Shy-Rendering korrigiert worden zu sein. Jetzt konnte ich entweder warten, bis Phantomjs mit Qt5 aufhörten.

Die andere Idee wäre, Java 7 installiert zu haben, das Javafx 2.0 enthält und ein WebView implementiert, das auch vom webdriver-protocol gesteuert werden kann. Neuere JavaFx 2.0-Versionen bieten die Möglichkeit Screenshots von JavaFX-Szenen zu erstellen, was hilfreich wäre.

Referenzen:

Merry Christmas,

Jan

+0

JavaFX WebView unterstützt derzeit keine Offscreen-Snapshots ohne Kopf. Die Feature-Anforderung, die verfolgt, dafür abgestimmt oder kommentiert werden kann, ist [RT-26571 "Unterstützung für das Abrufen von vollständigen Seiten-Snapshots von Web-Views"] (http://javafx-jira.kenai.com/browse/RT-26571) – jewelsea

+0

Heads-Up: Phantomjs 2 ist noch nicht fertig, JavaFX8 Webkit funktioniert bei mir in allen Tests. Keine Renderprobleme Ich könnte fortfahren und einen JavaFX Browser mit JsonWireProtocol für Selenium implementieren. Eine reine kopflose JavaFX 8-Web-Engine könnte mit OpenJFX Project Monocle möglich sein, aber nicht mit der aktuellen JavaFX8-Version. Hoffentlich macht Project Monocle es in Release 8u26 –

+0

XPath Unterstützung in Java FX 8 Web-Engine ist gebrochen. Dies erschwert die Web-Treiber-Implementierung. https://javafx-jira.kenai.com/browse/RT-30698 –

Antwort

7

Ja, Ich habe das gebaut: https://github.com/MachinePublishers/jBrowserDriver

Standardmäßig wird Headless ausgeführt. Snapshots, XPath und alles andere funktioniert. Kein Browser ist erforderlich, nur Java 8.

+0

Java FX scheint jedoch einen großen Speicherverlust aufgrund von verwaisten Medienhandles zu haben. Vielleicht wird es eines Tages einen QT5/Qupzilla Fahrer geben. –