jmc*_*ick 11 javascript selenium angularjs protractor
我正在尝试通过以下命令在我的量角器配置文件中设置chromeOptions:
protractor conf.js --capabilities.chromeOptions.args.0 start-fullscreen --capabilities.chromeOptions.args.1 display --capabilities.chromeOptions.args.2 :99
Run Code Online (Sandbox Code Playgroud)
我期待结果看起来像这样:
...
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['start-fullscreen','display',':99']
}
},
...
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行该命令时,我在webdriver中收到以下错误
...
Caused by: org.openqa.selenium.WebDriverException: unknown error: cannot parse capability: chromeOptions
from unknown error: cannot parse args
from unknown error: must be a list
...
Run Code Online (Sandbox Code Playgroud)
我不确定如何构造我的命令行参数,以便它生成args作为列表,或者如果功能根本不受支持.
这是一个帖子,有人尝试类似的东西,其中功能似乎被故意遗漏.但是,这篇文章似乎暗示最近添加了功能.
如果无法通过命令行设置,是否有解决方法?我需要更改每个量角器调用的显示,也许可以通过params在onPrepare中完成(注意:params不能在onPrepare之外的conf.js中引用).
要传递给 chromedriver 的命令行参数列表可以通过将多个传递--capabilities.chromeOptions.args
给protractor
. 每个后面都应该跟等号和命令行参数本身。无需手动指定args
数组中参数的位置。
如果命令行选项需要附加参数,则可以使用等号将其值与选项名称分开。
因此,在您的示例中,您应该使用:
protractor conf.js --capabilities.chromeOptions.args="start-fullscreen" --capabilities.chromeOptions.args="display=:99"
Run Code Online (Sandbox Code Playgroud)
需要注意的是,WebdriverJS 期望chromeOptions[args]
是一个数组,而传递单个命令行开关会将其强制为字符串。这可以通过传递额外的、将被忽略的无效命令行开关来解决:
# This won't work
protractor conf.js --capabilities.chromeOptions.args="start-fullscreen"
# This works as expected
protractor conf.js --capabilities.chromeOptions.args="start-fullscreen" --capabilities.chromeOptions.args="fake-arg"
Run Code Online (Sandbox Code Playgroud)
在解决问题 4050之前必须使用该解决方法(补丁自 3 月起可用,但尚未合并和发布)。
归档时间: |
|
查看次数: |
3779 次 |
最近记录: |