使用Selenium's webdriverjs运行网络驱动程序测试时,截取屏幕截图的正确方法是什么?
我已启动独立的selenium服务器,我可以看到在selenium-server上记录截屏命令,但屏幕截图没有保存。
我的代码如下:
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().usingServer('http://localURL:4444/wd/hub').withCapabilities({'browserName': 'chrome'}).build();
driver.get([URL to webserver on my local machine])
driver.takeScreenshot("c:\\selenium_local_map\\out1.png");
答案 0 :(得分:22)
截屏返回一个将使用Base64编码的png解析的承诺。要编写数据,您需要执行以下操作:
function writeScreenshot(data, name) {
name = name || 'ss.png';
var screenshotPath = 'C:\\selenium_local_map\\';
fs.writeFileSync(screenshotPath + name, data, 'base64');
};
driver.takeScreenshot().then(function(data) {
writeScreenshot(data, 'out1.png');
});
可以找到更多文档here