将无头设置为CLI arg

时间:2018-07-09 09:28:21

标签: protractor

我的量角器套件通常使用Chrome非无头模式,因此可以监视和填充测试,但是在编写测​​试时,我经常在无头和普通之间切换。不断更改conf.js文件很麻烦,因此我希望能够通过命令行参数来执行此操作。类似于以下内容:

npm test -- --headless

npm test-headless

如您所见,我正在通过npm运行量角器,因此这里的复杂参数构造不是问题。

我无法找到使用Google叔叔的方法。有人可以指出我正确的方向吗?

2 个答案:

答案 0 :(得分:3)

保持微笑。创建两个protractor.conf文件: -一个用于本地(non headless目的)-protractor.local.conf -您已拥有的另一个headless目的 并创建一些将运行所需脚本的脚本,例如:

 "scripts": {
    "test-headless": "node ./config/protractor.headless.conf.js",
    "test-local": "node ./config/protractor.local.conf.js",
  }

答案 1 :(得分:1)

一种有点黑的解决方案,但是可以!使用节点的process.argv全局节点在配置文件中检查此标志(或其他标志)。然后,您可以相应地动态配置量角器。这是JS配置文件的一大优势。

例如:

const isHeadless = process.argv.includes('--headless');

exports.config = {
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: [
        isHeadless && '--headless'
      ].filter(Boolean)
    }
  }
};

确实在量角器CLI中发出警告:

  

忽略未知的额外标志:无头。这将是一个错误   未来的版本,请使用--disableChecks标志禁用   量角器CLI标志检查。

与所有黑客一样,您在使用它们时会有一定程度的风险。 --disableChecks标志将摆脱警告和将来的错误,但可能会引入其他问题。