同时运行Chrome和IE 11 Protractor测试

时间:2016-10-13 21:38:20

标签: selenium-webdriver protractor e2e-testing

Protractor E2EChrome进行IE次测试很困难。

我可以单独运行它们,但是我需要在运行每个测试之前启动/停止相应的Chrome / IE webdriver服务器。

在我的conf.js文件中,我导出了以下配置选项:



exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: [             
         'spec/my-spec.js',
    ],    

    directConnect: false,    // false when targeting IE, and selen addr is used

    multiCapabilities: [
        {
            browserName: 'chrome'
        }
        ,
        {
            browserName: 'internet explorer',
            'version': '11'
        }
    ]
  }




对于标准Chrome测试,我可以启动Webdriver服务器:

 > webdriver-manager start

但对于IE,我发现了一种运行Webdriver IE的方法如下(是的,非常难看):

java -Dwebdriver.ie.driver=C:\Projects\GSDashboard-E2ETests\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverServer_x64_2.53.1.exe -jar C:\Projects\GSDashboard-E2ETests\node_modules\protractor\node_modules\webdriver-manager\selenium\selenium-server-standalone-2.53.1.jar

然后我就开始进行量角器测试:

protractor protractor.conf.js

我正在寻找一种更清洁,更流畅的方式同时运行IE / Chrome e2e测试。

有解决方案吗?

感谢任何建议/指导......

****** 更新 ******

根据下面的答案,尝试使用seleniumArgs如下(我可以指定jar文件或IEDriverServer_x64_2.53.1.exe文件:



exports.config = {
    //seleniumAddress: 'http://localhost:4444/wd/hub',  // comment out
    seleniumArgs: ['-Dwebdriver.ie.driver=C:\Projects\Dashb-E2ETests\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverServer_x64_2.53.1.exe'],
    allScriptsTimeout: 50000,
    specs: [
         'spec/MY-spec.js',
    ],    

    directConnect: false,    // false when targeting IE, and selen addr is used
    multiCapabilities: [
        //{
        //    browserName: 'chrome',                        
       ,
        {
            browserName: 'internet explorer',
            'version': '11'
        }
    ]    
}




但是运行测试会在Windows cmd提示符中抛出此错误:

E/launcher - The path to the driver executable must be set by the web   driver.ie.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/InternetExplorer‌​Driver. 

所以,我仍然没有想出如何同时运行IE和Chrome测试。

的问候, 鲍勃

2 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,解决方案正在运行:

  

webdriver-manager update --ie

之后,IE11和Chrome实例同时运行:

multiCapabilities: [
  {
      browserName: 'chrome'
  }  
  ,
  {
      browserName: 'internet explorer',
      'version': '11'
  }
  ]

答案 1 :(得分:1)

在conf.js中包含seleniumArgs: ['-Dwebdriver.ie.driver=pathtoIEdriver/IEDriverServer.exe']属性并删除seleniumAddress: 'http://localhost:4444/wd/hub'。如果没有提到seleniumAddress,则量角器将自动启动selenium服务器。因此,以下将是您对chrome进行量角器测试的conf.js,即

exports.config = {
  seleniumArgs: ['-Dwebdriver.ie.driver=node_modules/protractor/selenium/IEDriverServer.exe'],
  specs: [             
       'spec/my-spec.js',
  ],    

  directConnect: false,    // false when targeting IE, and selen addr is used

  multiCapabilities: [
      {
          browserName: 'chrome'
      }  
      ,
      {
          browserName: 'internet explorer',
          'version': '11'
      }
    ]
  }