Weiß jemand, ob es möglich ist, mit Selenium WebDriver einen Screenshot zu machen? (Hinweis: Nicht Selen RC)
selenium
selenium-webdriver
ashot
takesscreenshot
selenium-shutterbug
James Hollingworth
quelle
quelle
Antworten:
Java
Ja, es ist möglich. Das folgende Beispiel ist in Java:
quelle
/tmp
, sich in einem eigenen Dateisystem zu befinden, und FirefoxDriver schreibt Screenshots in/tmp
.HtmlUnitDriver
nicht implementiertTakesScreenshot
(siehe selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/... für eine Liste der unterstützten Treiber). Sie können aber als HTML speichern.org.apache.commons.io.FileUtils
Python
Jeder WebDriver verfügt über eine
.save_screenshot(filename)
Methode. Für Firefox kann es also folgendermaßen verwendet werden:Verwirrenderweise gibt es auch eine
.get_screenshot_as_file(filename)
Methode, die dasselbe tut.Es gibt auch Methoden für:
.get_screenshot_as_base64()
(zum Einbetten in HTML) und.get_screenshot_as_png()
(zum Abrufen von Binärdaten).und Beachten Sie, dass WebElements über eine
.screenshot()
Methode verfügen , die ähnlich funktioniert, jedoch nur das ausgewählte Element erfasst.quelle
driver.set_window_size(1366, 728)
.C #
quelle
JavaScript (Selenium-Webdriver)
quelle
var1
wenn Sie möchten. Sie sollten sich dietakeScreenshot()
Funktion ansehen, um zu wissen, was genau sie ist. Möglicherweise ein Binärbild, das aus Javascript mit Leinwand gerendert wurde. Es kann der Dom sein, bevor er gerendert wird. Einblick in.Rubin
Weitere Dateitypen und Optionen sind verfügbar und Sie können sie in take_screenshot.rb sehen
quelle
headless
undFirefox
Java
Ich habe dieses Problem behoben. Sie können das erweitern
RemoteWebDriver
, um ihm alle Schnittstellen zu geben, die der Proxy-Treiber implementiert:quelle
PHP (PHPUnit)
Verwendet die PHPUnit_Selenium-Erweiterung Version 1.2.7:
quelle
C #
quelle
Java
quelle
Jython
quelle
Java (Robot Framework)
Ich habe diese Methode verwendet, um einen Screenshot zu machen.
Sie können diese Methode verwenden, wo immer dies erforderlich ist.
quelle
Java
Scheint hier zu fehlen - Screenshot eines bestimmten Elements in Java machen:
quelle
code
this.driver.manage (). Window (). SetSize (neue Dimension (1680, 1050)); oder um nicht benötigte Elemente über CSS zu entfernen. Die richtige Lösung wäre, den y-Versatz vom Scrollen zu berechnen.Firefox
funktioniert einwandfrei, da der Elementbildschirm basierend auf den Abmessungen aus dem Vollbild ausgeschnitten wird. InChrome
wenn das Element im Hinblick Teil vorhanden ist mit aus dem aus dieser Sicht Teil Bild Scrollen fängt es Element in Ordnung. Wenn wir einen Screenshot machen möchten, nachdem Siedocument.documentElement.clientHeight
zweimal durch die Client-Höhe gescrollt haben, verwenden Sie diese Option(location.y)-2*clientHeight
, um einen genauen Element-Screenshot zu erhalten. Vielen Dank für diesen Beitrag, wie es mir hilft ...C #
Benötigt NuGetPackages:
Getestet mit .NETFramework v4.5.2
quelle
Java
Ich konnte die akzeptierte Antwort nicht zum Laufen bringen, aber gemäß der aktuellen WebDriver-Dokumentation funktionierte Folgendes mit Java 7 unter OS X 10.9 einwandfrei:
quelle
Rubin (Gurke)
quelle
Rubin
quelle
PHP
quelle
takescreenshot
Funktion aufgerufen wird? Woher kommt die$event
Variable? Ich bin ein kompletter Selenium-Neuling, daher wäre eine Antwort auf diese Frage, die keine Selenium-Vorkenntnisse voraussetzt, sehr willkommen!Power Shell
Andere Fahrer ...
quelle
[OpenQA.Selenium.ScreenshotImageFormat]::Png
alsSystem.Drawing
Namespace.Python - Screenshot von Element:
Dies ist eine ziemlich alte Frage und hat mehrere Antworten. Es scheint jedoch, dass hier ein Screenshot eines bestimmten Webelements mit Python fehlt.
Standort
Ein Webelement hat seine eigene Position auf der Seite und wird im Allgemeinen in x- und y-Pixeln gemessen und als (x, y) -Koordinaten des Elements bezeichnet. Das Standortobjekt enthält zwei Werte.
Größe
Wie der Standort hat jedes WebElement Breite und Höhe. Verfügbar als Größenobjekt.
Mit (x, y) -Koordinaten und Werten für Breite und Höhe können wir das Bild zuschneiden und in einer Datei speichern.
Hinweis: Entnommen aus http://allselenium.info/capture-screenshot-element-using-python-selenium-webdriver/
quelle
Es gibt mehrere Methoden durch Selen's Java und PythonClient, um einen Screenshot zu machen mit zu machenSelen-Web-Treiber
Java-Methoden
Im Folgenden sind die verschiedenen Java- Methoden aufgeführt, um einen Screenshot zu erstellen :
Verwenden
getScreenshotAs()
der TakesScreenshot-Oberfläche :Codeblock:
Bildschirmfoto:
Wenn die Webseite ist jquery aktiviert Sie verwenden können ,ein Schussaus der pazone / ashot Bibliothek:
Codeblock:
Bildschirmfoto:
Verwenden von Selen-Shutterbugaus der Behauptung, dass / Selen-Shutterbug- Bibliothek:
Codeblock:
Bildschirmfoto:
Python-Methoden
Im Folgenden finden Sie die verschiedenen Python- Methoden, um einen Screenshot zu erstellen :
Mit
save_screenshot()
Methode:Codeblock:
Bildschirmfoto:
Mit
get_screenshot_as_file()
Methode:Codeblock:
Bildschirmfoto:
Mit
get_screenshot_as_png()
Methode:Codeblock:
Bildschirmfoto:
quelle
Python
Sie können das Bild aus Windows mit dem Python-Webtreiber aufnehmen. Verwenden Sie den Code unter der Seite, auf der der Screenshot aufgenommen werden soll
quelle
Java
Mit diesen beiden Methoden können Sie auch einen Screenshot mit Datum und Uhrzeit erstellen.
quelle
Java
Mit RemoteWebDriver würde ich den Screenshot nach dem Erweitern des Knotens mit Screenshot-Funktionen folgendermaßen speichern:
Sie können diese Methode verwenden, wo immer dies erforderlich ist. Dann gehe ich davon aus, dass Sie das Stylesheet des Maven-Surefire-Report-Plugins unter Surefire-Reports / html / custom.css so anpassen können, dass Ihre Berichte den Link zum richtigen Screenshot für jeden Test enthalten.
quelle
Java
Hoffe das löst dein Problem
quelle
C #
quelle
Selenese
quelle
C #
Sie können das folgende Code-Snippet / die folgende Funktion verwenden, um einen Screenshot mit dem Selen zu erstellen:
quelle
Sie können die AShot-API ausprobieren. Hier ist der Github-Link für das gleiche.
https://github.com/yandex-qatools/ashot
Einige der Tests hier ...
https://github.com/yandex-qatools/ashot/tree/master/src/test/java/ru/yandex/qatools/elementscompare/tests
quelle
JAVA
Methode zum Erfassen eines Screenshots für die Fehler in Selen mit angehängtem Testname und Zeitstempel.
quelle
C # (Ranorex API)
quelle