我一直在使用量角器在AngularJS网络应用中运行e2e测试,在Chrome和Firefox上进行测试。将safari添加到我的阵列时,会显示以下内容:
“无法与SafariDriver扩展程序建立连接”
我找到了一种在本地解决这个问题的方法,但是当我们使用Codeship自动化我们的构建时,我需要一种方法来解决它,而不是必须手动将驱动程序添加到selenium并在Safari中启用。
我正在使用selenium 2.43.1
配置:
exports.config = {
baseUrl: 'http://localhost:9001',
multiCapabilities: [{
'browserName': 'chrome'
}, {
'browserName': 'firefox'
}, {
'browserName': 'safari'
}],
specs: ['e2e/app.js']
};
的package.json:
{
"name": "livingthevalues",
"version": "0.0.0",
"dependencies": {
"express": "^4.9.7",
"gzippo": "^0.2.0",
"bower": "^1.3.8",
"grunt": "^0.4.5",
"grunt-cli": "^0.1.13",
"grunt-autoprefixer": "^0.7.3",
"grunt-concurrent": "^0.5.0",
"grunt-contrib-clean": "^0.5.0",
"grunt-contrib-compass": "^0.7.2",
"grunt-contrib-concat": "^0.4.0",
"grunt-contrib-connect": "^0.7.1",
"grunt-contrib-copy": "^0.5.0",
"grunt-contrib-cssmin": "^0.9.0",
"grunt-contrib-htmlmin": "^0.3.0",
"grunt-contrib-imagemin": "^0.8.1",
"grunt-contrib-jshint": "^0.10.0",
"grunt-contrib-uglify": "^0.4.0",
"grunt-contrib-watch": "^0.6.1",
"grunt-filerev": "^0.2.1",
"grunt-google-cdn": "^0.4.0",
"grunt-newer": "^0.7.0",
"grunt-ng-annotate": "^0.3.0",
"grunt-svgmin": "^0.4.0",
"grunt-usemin": "^2.1.1",
"grunt-wiredep": "^1.7.0",
"jshint-stylish": "^0.2.0",
"load-grunt-tasks": "^0.4.0",
"time-grunt": "^0.3.1"
},
"devDependencies": {
"chai": "^1.9.2",
"chai-as-promised": "^4.1.1",
"cucumber": "^0.4.4",
"grunt-karma": "^0.9.0",
"grunt-protractor-runner": "^1.1.4",
"karma": "^0.12.17",
"karma-chrome-launcher": "^0.1.4",
"karma-jasmine": "^0.1.5",
"karma-junit-reporter": "^0.2.2",
"karma-mocha": "^0.1.6",
"karma-phantomjs-launcher": "^0.1.4",
"protractor": "^1.3.1",
"protractor-cucumber": "^0.1.2",
"sinon": "^1.11.0"
},
"engines": {
"node": ">=0.10.0"
},
"scripts": {
"test": "grunt test",
"pree2e": "./node_modules/protractor/bin/webdriver-manager update",
"e2e": "grunt test:e2e"
}
}
命令由ci:
运行Exporting Environment
0 min 2 sec
git clone --branch 'commentBox' --depth 50 git@github.com:MyTeam/myrepo.git ~/src/github.com/MyTeam/myrepo
0 min 1 sec
cd clone
0 min 1 sec
git checkout -qf 2ec65e3b32971d0f7f9de948c40f019f0629adea
0 min 1 sec
Preparing Dependency Cache
0 min 10 sec
Preparing Virtual Machine
0 min 5 sec
rvm use 2.0.0-p195
0 min 5 sec
bundle install
0 min 2 sec
nvm install 0.10.25
0 min 2 sec
nvm use 0.10.25
0 min 1 sec
npm install
0 min 7 sec
bower instal
0 min 7 sec
npm test
0 min 10 sec
npm run e2e
谢谢 - 看起来这么简单,但无法理解为什么它不起作用。
答案 0 :(得分:2)
我正在努力解决这个问题,尝试自动化我们对Safari 7.1的测试。到目前为止,我的研究使我相信,使用Safari 7.1,新的安全模型已经到位,使扩展更加安全。这是一个related thread fwiw。我尝试使用mvn命令行来安装SafariDriver扩展,但它没有这样做。我尝试运行一个简单的命令行以扩展名作为参数打开Safari,但随后系统会提示您启用/安装它。 (对无人值守的流量没有好处)。建议的另一个黑客是直接转到Safari用于首选项/扩展的plist文件,但我在Mac 10.10上找不到它。我非常渴望知道这里的答案。
答案 1 :(得分:2)
在Mac上,您以前必须安装的Selenium SafariDriver扩展程序现已折旧。在El Capitan& Sierra Apple提供了自己的Safaridriver。卸载以前的safaridriver扩展(如果已安装)并启用新的safaridriver,摘自链接2:
/usr/bin/safaridriver -p 8000
此外,您需要运行Selenium 3.0 +(支持从3.0.0-beta1开始)才能使用新的Safari驱动程序。
注意: 如果您仍有问题,请查看2nd link底部的附录。我遇到的另一个警告是,新的safaridriver只支持一个会话,因此不再支持maxSessions =#。此外,如果您使用npm selenium-standalone install,则可以像这样更新selenium版本。
selenium-standalone install --version=3.0.1 --baseURL=https://selenium-release.storage.googleapis.com
然后使用--version = 3.0.1标志启动集线器和节点。
答案 2 :(得分:0)
我使用的是Windows 7. 先决条件:在Windows上安装Safari
现在是时候实例化SafariDriver并获得所需的URL,如下所示:
WebDriver driver = new SafariDriver();
driver.get(" https://www.packtpub.com/web-development/mastering-selenium-testing-tools-video&#34);