我的量角器套件通常使用Chrome非无头模式,因此可以监视和填充测试,但是在编写测试时,我经常在无头和普通之间切换。不断更改conf.js文件很麻烦,因此我希望能够通过命令行参数来执行此操作。类似于以下内容:
npm test -- --headless
npm test-headless
如您所见,我正在通过npm运行量角器,因此这里的复杂参数构造不是问题。
我无法找到使用Google叔叔的方法。有人可以指出我正确的方向吗?
答案 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
标志将摆脱警告和将来的错误,但可能会引入其他问题。