量角器-获取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的对应对象。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...