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

use*_*673 12 javascript selenium node.js webpage-screenshot selenium-webdriver

使用Selenium的webdriverjs运行webdriver测试时,截取屏幕截图的正确方法是什么?

我已经启动了独立的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");
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 22

截屏返回一个将使用Base64编码的png解析的promise.要编写数据,您需要执行以下操作:

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');
});
Run Code Online (Sandbox Code Playgroud)

可在此处找到更多文档

  • 这太棒了,谢谢!只是想为那些要复制并粘贴它的Node n00bs添加,然后想知道如何处理产生的错误 - 将以下内容添加到第2行:var fs = require('fs'); (4认同)