量角器-获取sendChromiumCommand的结果

问题描述

目标获取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的对应对象。