¿Cómo tomar una captura de pantalla con Selenium WebDriver?

Resuelto James Hollingworth asked hace 14 años • 52 respuestas

¿Es posible tomar una captura de pantalla usando Selenium WebDriver?

(Nota: no es el control remoto de Selenium )

James Hollingworth avatar Aug 06 '10 15:08 James Hollingworth
Aceptado

Java

Sí, es posible. El siguiente ejemplo está en Java:

WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy somewhere
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
Sergii Pozharov avatar Aug 06 '2010 11:08 Sergii Pozharov

Pitón

Cada WebDriver tiene un .save_screenshot(filename)método. Entonces, para Firefox, se puede usar así:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')

Curiosamente, .get_screenshot_as_file(filename)también existe un método que hace lo mismo.

También existen 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 los WebElements tienen un .screenshot()método que funciona de manera similar, pero solo captura el elemento seleccionado.

Corey Goldberg avatar Jun 08 '2011 16:06 Corey Goldberg

C#

public void TakeScreenshot()
{
    try
    {            
        Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();
        ss.SaveAsFile(@"D:\Screenshots\SeleniumTestingScreenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        throw;
    }
}
jessica avatar Sep 06 '2013 15:09 jessica

JavaScript (Selenium-Webdriver)

driver.takeScreenshot().then(function(data){
   var base64Data = data.replace(/^data:image\/png;base64,/,"")
   fs.writeFile("out.png", base64Data, 'base64', function(err) {
        if(err) console.log(err);
   });
});
Moiz Raja avatar Jun 02 '2013 11:06 Moiz Raja