Wie man screenshot von RemoteWebDriver-server anstelle der lokalen FirefoxDriver?
Ich bin mit Selenium WebDriver-Tests auf einem remote-PC von meinem laptop(java-client), mithilfe RemoteWebDriver. Aber RemoteWebDriver noch keinen screenshot-API, um direkt ein screenshot der remote-PC. Gegoogelt, viel gefunden, aber scheint die Notwendigkeit zu verwenden, um Json-API, um es von remoteWebDriver server direkt. Wer kann mir einige Anleitungen zu tun? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
RemoteWebDriver
müssen erweitert werden, bevor Sie mit der screenshot-Fähigkeit. Wie Sie zweifellos bereits gefunden, versucht zu wirken ohne augmentation führt zu einer Ausnahme.War ich in der Lage, damit es funktioniert...hier ist, was Sie tun müssen:
1) Erstellen Sie eine neue Klasse-Datei in eine Util-Verzeichnis oder irgendwo
2.) Dann..., wo auch immer Sie starten Sie den RemoteWeDriver, ersetzen Sie mit diesem code:
Ihre screenshots werden lokal gespeichert.
Hoffe, das hilft.
Ich denke, dies ist der beste Weg:
Hier ist eine andere Lösung:
https://groups.google.com/d/topic/selenium-users/NLHXlhPrADs/discussion
Den RemoteWebDriver nicht implementiert TakesScreenShot und die Methoden, die hier beschrieben Besetzung der Instanz von RemoteWebDriver zu TakesScreenShot wird zu einer classcastexception-Fehler. Ich werde sehen, ob ich eine Lösung finden können, wie ich bin daran interessiert, das gleiche zu tun.
Den Nachbrenner wird die "Steigerung der Schnittstellen implementiert, die von dieser Instanz von WebDriver iff, die Instanz ist ein RemoteWebDriver". Je nachdem, wie die RemoteWebDriver konfiguriert ist und wie der selenium-server auf dem entfernten host läuft, kann es möglich sein, einen Screenshot in der mit der org.openqa.Selen.remote.Augmenter.
Habe ich so konfiguriert das RemoteWebDriver zu verwenden DesiredCapabilities.htmlUnit () - Funktionen und gibt einen ClassCastError. Wenn die RemoteWebDriver konfiguriert ist, mit den Fähigkeiten der Fahrer, die die TakesScreenshot-Schnittstelle, dann eine classcastexception-Fehler kann nicht auftreten, obwohl ich noch, um dies zu testen.
Aus der TakesScreenshot-Schnittstelle, die bekannte Umsetzung Fahrer sind: AndroidDriver, AndroidWebDriver, ChromeDriver, EventFiringWebDriver, FirefoxDriver, InternetExplorerDriver, IPhoneDriver, IPhoneSimulatorDriver, und SafariDriver