用于在Node上使用Selenium的WebDriverJs截取屏幕截图的正确语法

时间:2013-04-09 12:39:11

标签: javascript node.js selenium selenium-webdriver webpage-screenshot

使用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");

1 个答案:

答案 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