我使用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指定二进制文件?
答案 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
一起运行过。我不确定是否要将命令传递到Selenium服务器。
参考: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']
}