如何在Protractor中配置firefox二进制位置?

时间:2014-09-09 11:47:24

标签: angularjs firefox testing protractor

我使用Chrome成功运行了Protractor测试,使用我的量角器配置中的以下部分指定了我的chrome二进制文件的路径:

capabilities: {
// You can use other browsers
// like firefox, phantoms, safari, IE
'browserName': 'chrome',
"chromeOptions": {
  binary: 'C:/BuildSoftware/Chrome/Application/chrome.exe',
}

这很有效。

我的Firefox也安装在非标准位置。

在量角器配置中是否有相同的方法为Firefox指定二进制文件?

5 个答案:

答案 0 :(得分:12)

更新:请参阅以下较新的答案:https://stackoverflow.com/a/28313583/800699

似乎你必须自己使用firefox驱动程序的自定义参数启动Selenium Server。 见Protractor test is not starting on Firefox

可以在此处找到firefox驱动程序的更多选项(包括自定义firefox二进制位置): https://code.google.com/p/selenium/wiki/FirefoxDriver

P / S:浏览firefox驱动程序源显示更多亮点: https://code.google.com/p/selenium/source/browse/javascript/node/selenium-webdriver/firefox/index.js

您可以尝试添加:

"browserName": "firefox",
"firefox_binary": "path/to/custom/firefox",
"binary_": "path/to/custom/firefox"

答案 1 :(得分:6)

当使用“直接连接”(即没有selenium服务器)时,Protractor现在支持在配置文件中直接设置firefoxPath。请参阅参考配置文件:

https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L67

firefoxPath添加到顶层的配置文件中。它是一个字符串,应该是firefox二进制文件的路径。您还需要在配置中使用directConnect: true

有关详细信息(方便查看一次更改的所有文档),请查看the change that added this support (in Oct 2014)

答案 2 :(得分:1)

我将自定义二进制位置添加到PATH变量。

export PATH="/custom-firefox-location:$PATH"

这使得我的自定义firefox版本在会话期间可用,并且在运行量角器时它会使用它。

答案 3 :(得分:1)

现在是2018年,看来您可以在功能的binary部分中设置特定的'moz:firefoxOptions'参数,例如:

capabilities: {
    browserName: 'firefox',
    'moz:firefoxOptions': {
        args: [...Your args here...],
        binary: '/Path/To/Custom/firefox'
    }
}

免责声明:我也在量角器配置中与directConnect: true一起运行过。我不确定是否要将命令传递到S​​elenium服务器。

参考:https://github.com/mozilla/geckodriver/blob/master/README.md#mozfirefoxoptions

答案 4 :(得分:0)

详细说明 Monkpit的答案。下面的代码为我工作,在量角器v 5.4.2中进行了验证和测试。 自从我在程序文件中安装了Firefox以来,只需通过管理员模式打开cmd即可避免权限错误。

 capabilities: {
      browserName: 'firefox',
      'moz:firefoxOptions': {
            args: ['--verbose'],
            binary: 'C:/Program Files/Mozilla Firefox/firefox.exe'
       //Need to start cmd via admin mode to avoid permission error
        }
},   
    Full code 

exports.config = {
  framework: 'jasmine',
  directConnect: false, //Start protractor without start the selenium server using webdriver-manager start. default value is fales
  //This is  only for chrome and firefox and use drivers instead of selenium server

  capabilities: {
      browserName: 'firefox',
      'moz:firefoxOptions': {
            args: ['--verbose'],
            binary: 'C:/Program Files/Mozilla Firefox/firefox.exe'
       //Need to start cmd via admin mode to avoid permission error
        }
},   
    //set to true So each spec will be executed in own browser instance. default value is false
    //restartBrowserBetweenTests: true,
     jasmineNodeOpts: {
    //Jasmine provides only one timeout option  timeout in milliseconds don't add ;
    defaultTimeoutInterval: 180000
     },

  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['src/com/sam/scriptjs/iframes.spec.js']

}