Saltar al contenido

Selenium Webdriver (node.js) toma una captura de pantalla y guarda los resultados de la prueba

Nuestro grupo de especialistas despúes de muchos días de investigación y de recopilar de información, encontramos la respuesta, esperamos que resulte de gran utilidad en tu trabajo.

Solución:

Para guardar los registros de prueba, normalmente usa un corredor de prueba. Cuando verifica si un elemento está en la página y no puede encontrarlo, genera una excepción (generalmente un error de aserción) y el corredor de prueba lo registrará y lo marcará como una prueba fallida. En la documentación te sugieren usar Mocha.

En cuanto a guardar una captura de pantalla en el disco, la API se ve así

driver.takeScreenshot().then(
    function(image, err) 
        require('fs').writeFile('out.png', image, 'base64', function(err) 
            console.log(err);
        );
    
);

Adaptando la respuesta de aychedee en una promesa completa que se resolverá después de que se escriba el archivo y se rechazará en caso de error de escritura:

const util = require('util')
const fsp = require('fs').promises

function takeScreenshot(driver, file)
  return driver.takeScreenshot()
    .then(image => fsp.writeFile(file, image, 'base64'))

o en un async función

async function takeScreenshot(driver, file)
  let image = await driver.takeScreenshot()
  await fsp.writeFile(file, image, 'base64')

Solo para que conste, así es como se toma una captura de pantalla con WebdriverJS:

var webdriverjs = require('webdriverjs'),
    client = webdriverjs.remote(
        desiredCapabilities: 
            browserName: 'chrome'
        
    );

client
    .init()
    .url('http://google.com')
    .saveScreenshot(__dirname + '/googleScreenshot.png')
    .end();

También puede usar WebdriverCSS para tomar capturas de pantalla. Es un complemento para que WebdriverJS realice pruebas de regresión CSS. Es más o menos lo mismo que PhantomCSS.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *