grunt-protractor-runner和跨浏览器测试

时间:2014-07-30 10:22:21

标签: selenium-webdriver gruntjs protractor end-to-end

我能够在我当前的设置上成功运行chrome测试,但是我无法在测试中添加其他浏览器。我正在使用grunt模块' grunt-protractor-runner'运行我的e2e测试。

环顾四周我知道grunt-protractor-runner模块确实支持multiCapabilities,所以从表面上看,我希望编辑目标配置文件的简单任务包括multiCapabilities并将chromeOnly更新为false。

虽然我可以传递multiCapabilities,但我无法将chromeOnly选项更改为' false'并让我的测试成功运行。将Firefox和Chrome传递给multiCapabilities时出现错误,

运行2个WebDriver实例[launcher] Runner进程退出错误代码:8

------------------------------------
PID: 7812 (capability: chrome #1)
------------------------------------

Using the selenium server at http://localhost:4444/wd/hub

C:\Project\node_modules\protractor\node_modules\selenium-     webdriver\lib\webdriver\promise.js:1702
    throw error;
          ^
------------------------------------
PID: 6444 (capability: firefox #1)
------------------------------------

Using the selenium server at http://localhost:4444/wd/hub

C:\Project\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1702
  throw error;
        ^

我在Windows 7上运行我的设置,使用grunt-protractor-runner 1.0.1,量角器0.23.1,chromedriver 2.9和selenium-server-standalone 2.41.0

1 个答案:

答案 0 :(得分:1)

似乎我已经能够解决这个问题了 - 它与没有启动一个独立的selenium服务器有关,grunt-protractor-runner没有自己做。

解决这个问题的方法是使用webdriver-manager start --standalone在量角器网络驱动程序的位置打开一个新控制台,然后像以前一样使用grunt-protractor-runner运行测试;或者我现在使用grunt-protractor-webdriver模块并将其包含在要调用的grunt任务中。

在我的protractor.conf.js文件中,我删除了chromeOnly: true并添加了一个multiCapabilities浏览器数组。