我目前正在使用 Protractor 进行一些测试。不幸的是,我无法找到将命令行参数传递给正在使用的实际驱动程序的方法。
例如,chromedriver.exe 接受“--whitelisted-ips”作为命令行参数。在我的 Protractor 配置中,有什么方法可以将其传递给 chromedriver.exe 吗?
另一个例子是,对于 MicrosoftWebDriver.exe,它有一个名为“--package”的标志,它允许我将应用程序的包 ID 传递到目标。我如何让 Protractor 使用这些参数启动驱动程序?
我想也许我可以启动带有参数的独立 selenium 服务器来启动带有这些参数的驱动程序,但根据我的调查,我找不到实现这一点的方法。
为了澄清,我并不是要求将命令行参数传递到 Protractor 以在我的测试中使用。我希望正在运行的浏览器驱动程序(chromedriver.exe、firefoxdriver.exe、MicrosoftWebDriver.exe)使用特定的命令行参数运行。
最佳答案
将参数作为功能添加到您的配置文件中。这是特定于驱动程序的属性。
对于 Chrome/Chromedriver:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['./tmp/specs/*.spec.js'],
capabilities: {
'browserName' : 'chrome',
'goog:chromeOptions' : {
args: ['--start-maximized']
}
}
}
对于 Firefox/Geckodriver(仅显示更改):
capabilities: {
'browserName' : 'firefox',
'moz:firefoxOptions' : {
args: ['-headless']
}
}
MDN 有一个(非常短)list of vendor-specific capabilities .
参见https://sites.google.com/a/chromium.org/chromedriver/capabilities了解更多。
关于selenium - 如何将命令行参数传递给正在使用的浏览器驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44836077/