kal*_*aht 2 javascript selenium webdriver selenium-webdriver
我目前的代码看起来像这样.
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);
});
});
});
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到错误消息:
/home/project/node_modules/selenium-webdriver/lib/promise.js:654
throw error;
^
UnsupportedOperationError: unknown command: session/797c146086bc89ad245f76ce99302a48/element/0.9715665113180876-1/screenshot
at WebDriverError (/home/project/node_modules/selenium-webdriver/error.js:26:26)
at UnsupportedOperationError (/home/project/node_modules/selenium-webdriver/error.js:435:26)
at Object.checkLegacyResponse (/home/project/node_modules/selenium-webdriver/error.js:578:13)
at /home/project/node_modules/selenium-webdriver/lib/webdriver.js:360:15
at Promise.invokeCallback_ (/home/project/node_modules/selenium-webdriver/lib/promise.js:1329:14)
at TaskQueue.execute_ (/home/project/node_modules/selenium-webdriver/lib/promise.js:2790:14)
at TaskQueue.executeNext_ (/home/project/node_modules/selenium-webdriver/lib/promise.js:2773:21)
at /home/project/node_modules/selenium-webdriver/lib/promise.js:2652:27
at /home/project/node_modules/selenium-webdriver/lib/promise.js:639:7
at process._tickCallback (node.js:406:9)
Run Code Online (Sandbox Code Playgroud)
我正在使用selenium-webdriver版本2.52.0.有人知道出了什么问题吗?
要确认@Andersson所说的内容,除Microsoft Edge(参考)外,没有WebDriver实际实现基于元素的屏幕截图.你必须生成一个全窗口截图并裁剪它.
有关更多背景和解决方法,请参阅我之前关于此主题(和其他人)的回答.
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |