我试图用selenium-webdriver截取元素的截图,但是抛出了UnsupportedOperationError?

时间:2016-03-18 12:21:05

标签: javascript selenium selenium-webdriver webdriver

我目前的代码是这样的。

Intent

当我运行它时,我收到错误消息:

var webdriver = require('selenium-webdriver'),
until = webdriver.until,
By = webdriver.By,
fs = require('fs');

var driver = new webdriver.Builder()
  .forBrowser('chrome')
  .build();

driver.get('https://www.google.com/');

driver.findElement(By.css('#hplogo')).then((el) => {
  el.takeScreenshot().then((data) => {
    var base64Data = data.replace(/^data:image\/png;base64,/, "");
    fs.writeFile(__dirname + "/out.png", base64Data, 'base64', (err) => {
        if(err) console.log(err);
    });
  });
});

我使用selenium-webdriver版本2.52.0。有人知道出了什么问题吗?

1 个答案:

答案 0 :(得分:6)

确认@Andersson所说的内容,但Microsoft Edge(reference),no WebDriver actually implements element-based screenshots除外。你必须生成一个全窗口截图并裁剪它。

有关此主题(和其他人)的详情,请参阅my earlier answer了解更多背景信息和解决方法。