小编kal*_*aht的帖子

我的WebDriver脚本可以从网页上捕获一个事件吗?

我希望我的WebDriver脚本在网页触发特定事件后执行一些测试.这可能吗?

在WebDriver脚本中会有某种事件监听器:

document.addEventListener("hello", function(){
    console.log("doing tests");
});
Run Code Online (Sandbox Code Playgroud)

这将在网页执行时运行:

var ev = new Event("hello");
document.dispatchEvent(ev);
Run Code Online (Sandbox Code Playgroud)

这是否可能反过来,所以我可以从WebDriver向网页发起一个事件?

javascript selenium selenium-webdriver

6
推荐指数
1
解决办法
6442
查看次数

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

我目前的代码看起来像这样.

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 …
Run Code Online (Sandbox Code Playgroud)

javascript selenium webdriver selenium-webdriver

2
推荐指数
1
解决办法
1111
查看次数