我有如下的config.js:
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
params: {
browser: 'chrome'
},
capabilities: {
'browserName': (params.browser || 'chrome'),
},
...
}
现在,我想从控制台传递“浏览器”参数以在IE而不是Chrome上默认运行它:
protractor e2e/protractor.conf.js --params.browser='internet explorer'
或
protractor e2e/protractor.conf.js -- --params.browser='internet explorer'
我尝试了许多配置,但是每次得到:
[14:17:00] E/configParser - Error code: 105
[14:17:00] E/configParser - Error message: failed loading configuration file e2e/protractor.conf.js
[14:17:00] E/configParser - ReferenceError: params is not defined
任何人都可以帮忙吗?
答案 0 :(得分:0)
没有足够的声誉进行澄清:)
确定要正确调用这部分 params.browser 吗?我的意思是 params 。 在我看来, params 没有定义。您正在使用对象,因此请尝试以下操作:this.params.browser
如果您在 config.js 中定义配置,为什么要调用 protractor.conf.js ?
最后,量角器拥有自己的全局变量。还有一些可以使用它的入口点。例如,您可以在onPrepare()中使用全局量角器对象“浏览器”。要访问这些参数,应使用“ browser.params.browser”之类的东西。我不确定您在解析主conf文件时是否可以访问全局变量。可能有些与process.argv有关的解决方法将为您提供帮助。或重新设计您的逻辑结构。
答案 1 :(得分:0)
如果您的问题是从cmd行指定浏览器名称,则可以执行以下操作:
protractor e2e/protractor.conf.js --browser='internet explorer'
您可以用相同的方式指定以下参数:
--seleniumAddress=
--specs="['./src/**/*.e2e-spec.ts', '']"
--capabilities=<json string>
--suite=
除了reserved
参数之外,您还可以在cmd行中通过--params.xxx
格式指定任何参数,并在脚本中使用browser.params.xxx
格式来使用xxx
。
但是browser
变量不能在conf.js
的任何地方使用,只有在打开浏览器后才会初始化。
正如protractor website所说,您可以在browser
函数中以及在量角器调用onPrepare
函数之后执行的任何地方使用onPrepare
。