¿Alguien sabe si es posible tomar una captura de pantalla con Selenium WebDriver? (Nota: No Selenium RC)
selenium
selenium-webdriver
ashot
takesscreenshot
selenium-shutterbug
James Hollingworth
fuente
fuente
Respuestas:
Java
Sí, es posible. El siguiente ejemplo está en Java:
fuente
/tmp
estar en su propio sistema de archivos, y FirefoxDriver escribe capturas de pantalla en/tmp
.HtmlUnitDriver
no se implementaTakesScreenshot
(consulte selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/… para obtener una lista de los controladores compatibles). Pero puedes guardar como HTML.org.apache.commons.io.FileUtils
Pitón
Cada WebDriver tiene un
.save_screenshot(filename)
método. Entonces, para Firefox, se puede usar así:Confusamente,
.get_screenshot_as_file(filename)
también existe un método que hace lo mismo.También hay métodos para:
.get_screenshot_as_base64()
(para incrustar en html) y.get_screenshot_as_png()
(para recuperar datos binarios).y Tenga en cuenta que WebElements tiene un
.screenshot()
método que funciona de manera similar, pero solo captura el elemento seleccionado.fuente
driver.set_window_size(1366, 728)
.C#
fuente
JavaScript (Selenium-Webdriver)
fuente
var1
si lo deseas. Debes mirar latakeScreenshot()
función para saber qué es exactamente. Tal vez una imagen binaria renderizada desde javascript usando canvas. Puede ser el dom, antes de que se procese. Examinar.Rubí
hay más tipos de archivos y opciones disponibles y puede verlos en takes_screenshot.rb
fuente
headless
yFirefox
Java
Tengo este problema resuelto. Puede aumentar el
RemoteWebDriver
para darle todas las interfaces que implementa su controlador proxy:fuente
PHP (PHPUnit)
Utiliza la extensión PHPUnit_Selenium versión 1.2.7:
fuente
C#
fuente
Java
fuente
Jython
fuente
Java (Robot Framework)
Usé este método para tomar capturas de pantalla.
Puede usar este método cuando sea necesario.
fuente
Java
Parece que falta aquí: tomar una captura de pantalla de un elemento específico en Java:
fuente
code
this.driver.manage (). Window (). SetSize (new Dimension (1680, 1050)); o para eliminar cualquier elemento no requerido a través de css. La solución adecuada sería calcular el desplazamiento y del desplazamiento.Firefox
funciona bien, ya que recorta la pantalla del elemento de la imagen completa basada en dimensiones. EnChrome
si el elemento está disponible en parte con vista a cabo el desplazamiento de la porción de esa imagen vista desde que capta elemento fina. Si queremos tomar una captura de pantalla después de desplazardocument.documentElement.clientHeight
dos veces la Altura del cliente, use(location.y)-2*clientHeight
para obtener una captura de pantalla exacta del elemento. Gracias por esta publicación, ya que me ayuda ...C#
Requiere NuGetPackages:
Probado con .NETFramework v4.5.2
fuente
Java
No pude obtener la respuesta aceptada para trabajar, pero según la documentación actual de WebDriver , lo siguiente funcionó bien para mí con Java 7 en OS X 10.9:
fuente
Rubí (pepino)
fuente
Rubí
fuente
PHP
fuente
takescreenshot
función? Específicamente, ¿de dónde$event
viene la variable? Soy un novato completo de Selenium, ¡por lo que una respuesta a esta pregunta que no asume conocimiento previo de Selenium sería muy apreciada!Potencia Shell
Otros conductores ...
fuente
[OpenQA.Selenium.ScreenshotImageFormat]::Png
que elSystem.Drawing
espacio de nombres.Python - Captura de pantalla de Element:
Esta es una pregunta bastante antigua y tiene múltiples respuestas. Sin embargo, parece que falta la captura de pantalla de un elemento web en particular usando Python.
ubicación
Un elemento web tiene su propia posición en la página y generalmente se mide en píxeles x e y y se conoce como coordenadas (x, y) del elemento. Y el objeto de ubicación contiene dos valores.
Talla
Al igual que la ubicación, cada elemento web tiene ancho y alto; Disponible como objeto de tamaño.
Usando coordenadas (x, y) y valores de ancho y alto, podemos recortar la imagen y almacenarla en un archivo.
Nota: Tomado de http://allselenium.info/capture-screenshot-element-using-python-selenium-webdriver/
fuente
Existen múltiples métodos a través de selenio's Java y pitóncliente para tomar una captura de pantalla usandoselenio-webdriver
Métodos Java
Los siguientes son los diferentes métodos de Java para tomar una captura de pantalla :
Utilizando
getScreenshotAs()
desde la interfaz TakesScreenshot :Bloque de código:
Captura de pantalla:
Si la página web está habilitada para jquery , puede usarun disparode la biblioteca pazone / ashot :
Bloque de código:
Captura de pantalla:
Utilizando bicho de seleniode afirmar que / biblioteca de selenio-shutterbug :
Bloque de código:
Captura de pantalla:
Métodos de Python
Los siguientes son los diferentes métodos de Python para tomar una captura de pantalla :
Utilizando el
save_screenshot()
método:Bloque de código:
Captura de pantalla:
Utilizando el
get_screenshot_as_file()
método:Bloque de código:
Captura de pantalla:
Utilizando el
get_screenshot_as_png()
método:Bloque de código:
Captura de pantalla:
fuente
Pitón
Puede capturar la imagen desde Windows utilizando el controlador web Python. Use el código debajo de qué página necesita capturar la captura de pantalla
fuente
Java
Con estos dos métodos, también puede tomar una captura de pantalla con la fecha y la hora.
fuente
Java
Usando RemoteWebDriver, después de aumentar el Nodo con capacidad de captura de pantalla, almacenaría la captura de pantalla de esta manera:
Puede usar este método cuando sea necesario. Entonces, supongo que puede personalizar la hoja de estilo de maven-surefire-report-plugin en surefire-reports / html / custom.css para que sus informes incluyan el enlace a la captura de pantalla correcta para cada prueba.
fuente
Java
Espero que esto resuelva tu problema
fuente
C#
fuente
Selenese
fuente
C#
Puede usar el siguiente fragmento de código / función para tomar una captura de pantalla con el selenio:
fuente
Puede probar AShot API. Aquí está el enlace de github para lo mismo.
https://github.com/yandex-qatools/ashot
Algunas de las pruebas aquí ...
https://github.com/yandex-qatools/ashot/tree/master/src/test/java/ru/yandex/qatools/elementscompare/tests
fuente
JAVA
Método para capturar Captura de pantalla para las fallas en Selenium con TestName y Timestamp adjuntos.
fuente
C # (API de Ranorex)
fuente