2014-10-28 143 views
1

我一直在使用量角器在AngularJS Web應用程序中運行e2e測試,並在Chrome和Firefox上進行測試。當加入Safari瀏覽我的陣列,顯示如下:無法與SafariDriver擴展建立連接

「無法建立與SafariDriver擴展的連接」

我已經找到一種方法來在本地解決這個問題,但我們正使用Codeship自動化我們的構建,我需要一種解決方法,而不必手動將驅動程序添加到硒並在Safari中啓用。

我使用硒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 [email protected]: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 

謝謝 - 看起來像這樣一個簡單的事情要做,但不明白爲什麼它不工作。

回答

2

在Mac上,您以前必須安裝的Selenium SafariDriver擴展現在已折舊。在El Capitan & Sierra Apple提供它自己的Safaridriver。卸載以前的safaridriver擴展(如果你已經安裝了它),並從鏈接2啓用新safaridriver,摘錄:

  • 確保制定菜單。可以通過打開Safari首選項(菜單欄中的Safari>首選項),轉到高級選項卡並確保選中菜單欄中的顯示顯影菜單複選框來打開它。
  • 在「開發」菜單中啓用遠程自動化。這通過 切換菜單欄中的開發>允許遠程自動化。
  • 授權safaridriver啓動本地Web服務器託管 的webdriverd服務。要做到這一點,手動運行/ usr/bin/safaridriver一次 並完成身份驗證提示。例如在終端:

另外,你需要運行Selenium 3.0 +(支持在3.0.0-β1開始)以使用新的Safari瀏覽器的驅動程序。

備註: 如果仍有問題,可以查看2nd link底部的附錄。另一個需要注意的地方是,新的safaridriver只支持一個會話,所以maxSessions =#不再支持。另外,如果你使用npm selenium-standalone install,你可以像這樣更新硒版本。

selenium-standalone install --version=3.0.1 --baseURL=https://selenium-release.storage.googleapis.com 

然後用--version = 3.0.1標誌引導集線器和節點。

2

我對這個確切的問題摔跤,試圖自動化我們對Safari 7.1的測試。迄今爲止,我的研究讓我相信,在Safari 7.1中,一種新的安全模型已經到位,可以使擴展更加安全。這是一個related thread fwiw。我曾嘗試使用mvn命令行安裝SafariDriver擴展,但未能如此。我試着運行一個簡單的命令行來打開Safari,並將擴展名作爲參數,然後提示您啓用/安裝它。 (對無人看管的流量沒有好處)。建議的另一個破解是直接進入Safari用於首選項/擴展名的plist文件,但我在Mac 10.10上找不到它。我很想知道這裏的答案。

+0

啊我明白了,那是一種痛苦。我已經手動安裝它,就像他們在線程中做的那樣很好,只是自動化部分很痛苦。也找不到plist,所以除非有一個我們缺少的命令似乎沒有太多可以做到的這一點...現在應該與一些人交談,讓我們知道如果我能找到一個解決方案 - 希望有人會知道! – lg365 2014-10-30 12:36:48

0

我使用Windows 7
先決條件:在Windows上安裝的Safari

  1. 轉到http://docs.seleniumhq.org/download/
  2. 向下滾動 - >轉到節 「SafariDriver」 下載 「SafariDriver.safariextz」
  3. 的「SafariDriver.safariextz」(以前下載)雙擊
  4. Safari瀏覽器將與彈出包含開放的「安裝」按鈕 - >點擊安裝按鈕
  5. 現在去Safari瀏覽器的首選項,你會看到的webdriver(在我的情況的webdriver 2.48.0)安裝(啓用webdriver的複選框被選中))
  6. 現在是時候來實例化SafariDriver並獲得所需的網址如下:

    WebDriver driver = new SafariDriver();
    driver.get(「https://www.packtpub.com/web-development/mastering-selenium-testing-tools-video」);