Alguém sabe se é possível tirar uma captura de tela usando o Selenium WebDriver? (Nota: Não Selenium RC)
selenium
selenium-webdriver
ashot
takesscreenshot
selenium-shutterbug
James Hollingworth
fonte
fonte
Respostas:
Java
Sim, é possível. O exemplo a seguir está em Java:
fonte
/tmp
estar em seu próprio sistema de arquivos e o FirefoxDriver grava capturas de tela/tmp
.HtmlUnitDriver
isso não é implementadoTakesScreenshot
(consulte selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/… para obter uma lista dos drivers suportados). Mas você pode salvar como HTML.org.apache.commons.io.FileUtils
Pitão
Cada WebDriver tem um
.save_screenshot(filename)
método. Portanto, para o Firefox, ele pode ser usado assim:Confusamente,
.get_screenshot_as_file(filename)
também existe um método que faz a mesma coisa.Existem também métodos para:
.get_screenshot_as_base64()
(para incorporar em html) e.get_screenshot_as_png()
(para recuperar dados binários).e Observe que os WebElements têm um
.screenshot()
método que funciona de maneira semelhante, mas captura apenas o elemento selecionado.fonte
driver.set_window_size(1366, 728)
.C #
fonte
JavaScript (Selenium-Webdriver)
fonte
var1
se desejar. Você deve olhar para atakeScreenshot()
função para saber exatamente o que é. Talvez uma imagem binária renderizada em javascript usando canvas. Pode ser o dom, antes de ser renderizado. Investigar.Rubi
mais tipos e opções de arquivos estão disponíveis e você pode vê-los em takes_screenshot.rb
fonte
headless
eFirefox
Java
Eu resolvi esse problema. Você pode aumentar o
RemoteWebDriver
para fornecer a todas as interfaces que o driver proxy implementado:fonte
PHP (PHPUnit)
Usa a extensão PHPUnit_Selenium versão 1.2.7:
fonte
C #
fonte
Java
fonte
Jython
fonte
Java (Estrutura do robô)
Eu usei esse método para tirar uma captura de tela.
Você pode usar esse método sempre que necessário.
fonte
Java
Parece estar faltando aqui - captura de tela de um elemento específico em Java:
fonte
code
this.driver.manage (). Window (). SetSize (new Dimension (1680, 1050)); ou remover quaisquer elementos não necessários via css. A solução adequada seria calcular o deslocamento y da rolagem.Firefox
obras muito bem como ela surge na tela elemento integral Imagem baseada em dimensões. EmChrome
se o elemento está disponível em parte vista com a rolar a partir dessa imagem porção vista que capta elemento bem. Se quisermos capturar a tela depois de rolardocument.documentElement.clientHeight
duas vezes a altura do cliente, use(location.y)-2*clientHeight
para obter a captura de tela exata do elemento. Obrigado por este post como isso me ajuda ...C #
Requer NuGetPackages:
Testado com .NETFramework v4.5.2
fonte
Java
Não consegui obter a resposta aceita para o trabalho, mas, de acordo com a documentação atual do WebDriver , o seguinte funcionou bem para mim com o Java 7 no OS X 10.9:
fonte
Rubi (Pepino)
fonte
Rubi
fonte
PHP
fonte
takescreenshot
função? Especificamente de onde vem a$event
variável? Eu sou um noob completo de selênio, portanto, uma resposta a essa pergunta que não pressupõe conhecimento prévio sobre selênio seria muito apreciada!PowerShell
Outros drivers ...
fonte
[OpenQA.Selenium.ScreenshotImageFormat]::Png
queSystem.Drawing
espaço para nome.Python - Tela do elemento:
Esta é uma pergunta bastante antiga e tem várias respostas. No entanto, parece que a captura de tela de um elemento da Web específico usando Python está ausente aqui.
localização
Um elemento da web possui sua própria posição na página e geralmente é medido em pixels xey, conhecido como coordenadas (x, y) do elemento. E o objeto de localização contém dois valores.
Tamanho
Como a localização, cada WebElement tem largura e altura; Disponível como objeto de tamanho.
Usando coordenadas (x, y) e valores de largura e altura, podemos cortar a imagem e armazená-la em um arquivo.
Nota: Retirado de http://allselenium.info/capture-screenshot-element-using-python-selenium-webdriver/
fonte
Existem vários métodos através de selênioé Java e Pitãocliente para tirar uma captura de tela usandochave de selênio
Métodos Java
A seguir, estão os diferentes métodos Java para tirar uma captura de tela :
Usando
getScreenshotAs()
da interface TakesScreenshot :Bloco de código:
Captura de tela:
Se a página da web estiver ativada para jquery, você poderá usarum tiroda biblioteca pazone / ashot :
Bloco de código:
Captura de tela:
Usando selenium-shutterbugda biblioteca assertthat / selenium-shutterbug :
Bloco de código:
Captura de tela:
Métodos Python
A seguir, estão os diferentes métodos Python para fazer uma captura de tela :
Usando o
save_screenshot()
método:Bloco de código:
Captura de tela:
Usando o
get_screenshot_as_file()
método:Bloco de código:
Captura de tela:
Usando o
get_screenshot_as_png()
método:Bloco de código:
Captura de tela:
fonte
Pitão
Você pode capturar a imagem do Windows usando o driver da web python. Use o código abaixo da página que precisa capturar a captura de tela
fonte
Java
Usando esses dois métodos, você também pode tirar uma captura de tela com a data e a hora.
fonte
Java
Usando o RemoteWebDriver, depois de aumentar o Node com capacidade de captura de tela, eu armazenaria a captura de tela da seguinte forma:
Você pode usar esse método sempre que necessário. Então, suponho que você possa personalizar a folha de estilos do maven-surefire-report-plugin em surefire-reports / html / custom.css, para que seus relatórios incluam o link da captura de tela correta para cada teste?
fonte
Java
Espero que isso resolva seu problema
fonte
C #
fonte
Selenese
fonte
C #
Você pode usar o seguinte trecho de código / função para tirar uma captura de tela com o selênio:
fonte
Você pode tentar a API AShot. Aqui está o link do github para o mesmo.
https://github.com/yandex-qatools/ashot
Alguns dos testes aqui ...
https://github.com/yandex-qatools/ashot/tree/master/src/test/java/ru/yandex/qatools/elementscompare/tests
fonte
JAVA
Método para capturar a captura de tela das falhas no Selenium com TestName e Timestamp anexados.
fonte
C # (API Ranorex)
fonte