Protractor - 获取 sendChromiumCommand 的结果

Protractor - get result of sendChromiumCommand

目标:获取chromium命令执行的结果,例如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 return null

这本身不是 Protractor 问题。

问题是 Node.js 的基础 selenium-webdriver 使用 send_command(没有 return 结果),但没有实现 send_command_and_get_result 的用法.

According to response from developers 它将在下一个 alpha 版本中修复(当前版本是 4.0.0-alpha.7

我想,为了让它工作,Protractor 的 sendChromiumCommand 必须得到一个 sendChromiumCommandAndGetResult 对应,一旦 selenium-webdriver 修复可用。