selenium - 如何将命令行参数传递给正在使用的浏览器驱动程序

标签 selenium selenium-webdriver protractor

我目前正在使用 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/

相关文章:

java - 多重测试 TestNG.xml 文件导致 java.lang.NullPointerException

java - @AfterClass 在 cucumber 脚本中不起作用

java - 无法定位元素: {"method" :"id" ,"selector" :"sysPublishDateDate"}

c# - 由于弹出警报,Selenium 代码停止

ios - 使用Appium生成 Protractor 脚本时,有没有具体的元素定位方式?

javascript - Protractor 函数助手生成相同的东西

python - 即使 div 存在,按 id 查找也返回 None

ruby - 如何在Ruby中通过https下载文件

java - 具有失败的配置:@BeforeClass setUp和失败的配置:@AfterClass tearDown java.lang.NullPointerException错误

angularjs - 在 Protractor 中使用占位符查找元素?