Est-ce que quelqu'un sait s'il est possible de faire une capture d'écran en utilisant Selenium WebDriver? (Remarque: pas Selenium RC)
selenium
selenium-webdriver
ashot
takesscreenshot
selenium-shutterbug
James Hollingworth
la source
la source
Réponses:
Java
Oui c'est possible. L'exemple suivant est en Java:
la source
/tmp
d'être sur son propre système de fichiers et FirefoxDriver écrit des captures d'écran/tmp
.HtmlUnitDriver
n'est pas implémentéeTakesScreenshot
(voir selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/… pour une liste des pilotes pris en charge). Mais vous pouvez enregistrer au format HTML.org.apache.commons.io.FileUtils
Python
Chaque WebDriver a une
.save_screenshot(filename)
méthode. Donc pour Firefox, il peut être utilisé comme ceci:Confusément,
.get_screenshot_as_file(filename)
il existe également une méthode qui fait la même chose.Il existe également des méthodes pour:
.get_screenshot_as_base64()
(pour l'intégration en html) et.get_screenshot_as_png()
(pour la récupération de données binaires).et Notez que les WebElements ont une
.screenshot()
méthode qui fonctionne de manière similaire, mais ne capture que l'élément sélectionné.la source
driver.set_window_size(1366, 728)
.C #
la source
JavaScript (Selenium-Webdriver)
la source
var1
si vous le souhaitez. U devrait regarder latakeScreenshot()
fonction pour savoir exactement ce que c'est. Peut-être une image binaire rendue à partir de javascript en utilisant canvas. Ce peut être le dom, avant qu'il ne soit rendu. Examiner.Rubis
plus de types de fichiers et d'options sont disponibles et vous pouvez les voir dans takes_screenshot.rb
la source
headless
etFirefox
Java
J'ai résolu ce problème. Vous pouvez augmenter le
RemoteWebDriver
pour lui donner toutes les interfaces que son pilote mandataire implémente:la source
PHP (PHPUnit)
Utilise l'extension PHPUnit_Selenium version 1.2.7:
la source
C #
la source
Java
la source
Jython
la source
Java (Robot Framework)
J'ai utilisé cette méthode pour prendre une capture d'écran.
Vous pouvez utiliser cette méthode si nécessaire.
la source
Java
Semble manquer ici - prendre une capture d'écran d'un élément spécifique en Java:
la source
code
this.driver.manage (). Window (). SetSize (new Dimension (1680, 1050)); ou pour supprimer tous les éléments non requis via css. La bonne solution serait de calculer le décalage y du défilement.Firefox
fonctionne très bien car il recadre l'écran de l'élément à partir de l'image complète basée sur les dimensions. EnChrome
si l'élément est disponible dans la partie de vue avec défilement sur la partie de cette vue image qu'elle capture bien l' élément. Si nous voulons prendre une capture d'écran après avoir fait défilerdocument.documentElement.clientHeight
deux fois la hauteur du client, utilisez(location.y)-2*clientHeight
pour obtenir la capture d'écran exacte de l'élément. Merci pour ce message car il m'aide ...C #
Nécessite NuGetPackages:
Testé avec .NETFramework v4.5.2
la source
Java
Je n'ai pas pu obtenir la réponse acceptée au travail, mais selon la documentation WebDriver actuelle , les éléments suivants ont bien fonctionné pour moi avec Java 7 sur OS X 10.9:
la source
Rubis (concombre)
la source
Rubis
la source
PHP
la source
takescreenshot
fonction? Plus précisément, d'où vient la$event
variable? Je suis un noob complet en sélénium, donc une réponse à cette question qui ne suppose pas une connaissance préalable du sélénium serait très appréciée!PowerShell
Autres pilotes ...
la source
[OpenQA.Selenium.ScreenshotImageFormat]::Png
que l'System.Drawing
espace de noms.Python - Capture d'écran d'Element:
Il s'agit d'une assez vieille question qui a plusieurs réponses. Cependant, il semble que la capture d'écran d'un élément Web particulier utilisant Python manque ici.
emplacement
Un élément Web a sa propre position sur la page et est généralement mesuré en pixels x et y et connu sous le nom de coordonnées d'élément (x, y). Et l'objet de localisation contient deux valeurs.
Taille
Comme l'emplacement, chaque WebElement a une largeur et une hauteur; Disponible comme objet de taille.
En utilisant les coordonnées (x, y) et les valeurs de largeur, hauteur, nous pouvons recadrer l'image et la stocker dans un fichier.
Remarque: Extrait de http://allselenium.info/capture-screenshot-element-using-python-selenium-webdriver/
la source
Il existe plusieurs méthodes à travers séléniumc'est Java et pythonclient pour prendre une capture d'écran à l' aidetournevis au sélénium
Méthodes Java
Voici les différentes méthodes Java pour faire une capture d'écran :
Utilisation
getScreenshotAs()
de l' interface TakesScreenshot :Bloc de code:
Capture d'écran:
Si la page Web est jquery compatible avec vous pouvez utiliserun coup de feude la bibliothèque pazone / ashot :
Bloc de code:
Capture d'écran:
En utilisant sélecteur au séléniumà partir de la bibliothèque assertthat / selenium-shutterbug :
Bloc de code:
Capture d'écran:
Méthodes Python
Voici les différentes méthodes Python pour prendre une capture d'écran :
En utilisant la
save_screenshot()
méthode:Bloc de code:
Capture d'écran:
En utilisant la
get_screenshot_as_file()
méthode:Bloc de code:
Capture d'écran:
En utilisant la
get_screenshot_as_png()
méthode:Bloc de code:
Capture d'écran:
la source
Python
Vous pouvez capturer l'image à partir de Windows à l'aide du pilote Web Python. Utilisez le code ci-dessous quelle page doit capturer la capture d'écran
la source
Java
En utilisant ces deux méthodes, vous pouvez également prendre une capture d'écran avec la date et l'heure.
la source
Java
En utilisant RemoteWebDriver, après avoir augmenté le Node avec une capacité de capture d'écran, je stockerais la capture d'écran comme suit:
Vous pouvez utiliser cette méthode si nécessaire. Ensuite, je suppose que vous pouvez personnaliser la feuille de style de maven-surefire-report-plugin sur surefire-reports / html / custom.css afin que vos rapports incluent le lien vers la capture d'écran correcte pour chaque test?
la source
Java
J'espère que ceci résoudra votre problème
la source
C #
la source
Sélénien
la source
C #
Vous pouvez utiliser l'extrait de code / la fonction suivante pour prendre une capture d'écran avec le sélénium:
la source
Vous pouvez essayer l'API AShot. Voici le lien github pour la même chose.
https://github.com/yandex-qatools/ashot
Certains des tests ici ...
https://github.com/yandex-qatools/ashot/tree/master/src/test/java/ru/yandex/qatools/elementscompare/tests
la source
JAVA
Méthode de capture d'écran pour les échecs dans Selenium avec TestName et Timestamp ajoutés.
la source
C # (API Ranorex)
la source