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.