问题描述
目标:获取Chrome命令执行的结果,例如Profiler报告数据
我所做的事情:我可以使用browser.driver.sendChromiumCommand
调用chrome devtools命令。
例如await browser.driver.sendChromiumCommand('Page.reload',{})
重新加载页面,因此我可以确认它是否正常工作。
问题:任何命令执行的结果始终为null
这是我的代码
describe('Protractor Demo App',function() {
it('whatever',async function() {
await browser.get('http://juliemr.github.io/protractor-demo/');
const data = await browser.driver.sendChromiumCommand('Page.reload',{
scriptToEvaluateOnLoad: `(function(){return '123 })()`
});
console.log(data); // expected '123' but got 'null'
});
});
注意:问题与特定命令无关,所有devtools commands返回null
解决方法
这本身不是量角器问题。
问题在于,Node.js的基础selenium-webdriver
使用send_command
(不返回结果),但未实现send_command_and_get_result
的使用。
According to response from developers将在下一个alpha版本中得到修复(当前版本为4.0.0-alpha.7
)
我想,为了使此工作正常,一旦提供sendChromiumCommand
修复程序,量角器的sendChromiumCommandAndGetResult
就必须得到selenium-webdriver
的对应对象。