Правильный синтаксис для снятия скриншотов с помощью Selenium WebDriverJs на Node

Каков правильный способ сделать снимок экрана при запуске теста webdriver с помощью Selenium webdriverjs?

У меня запущен автономный сервер selenium, и я вижу, что команда для снятия скриншотов регистрируется на сервере selenium, но скриншот не сохраняется.

Мой код следующий:

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

Снимок экрана возвращает обещание, которое будет разрешено с помощью PNG с кодировкой Base64. Чтобы записать данные, вам нужно сделать что-то вроде следующего:

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');
});

Дополнительную документацию можно найти здесь