Javascript - UnknownError:与远程浏览器通信时出错。它可能已经死亡

时间:2016-07-29 15:30:16

标签: angularjs selenium-webdriver protractor bamboo e2e-testing

INFOS
  Node v4.4.7
  Protractor v4.0.2
  Gulp CLI version 3.9.1
  Gulp Local version 3.9.1
  Chromedriver chromedriver_2.22.exe
  SeleniumServerJar selenium-server-standalone-2.53.1.jar
  Chrome Browser version=52.0.2743.82 m

SYSTEM INFO:
    host: 'win10', ip: '**', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', 
    java.version: '1.8.0_102'

我正在使用Bamboo服务器通过gulp和测试PASS运行我的Protractor e2e测试,但最后会抛出此错误:"UnknownError: Error communicating with the remote browser. It may have died."

我尝试在功能步骤JavaScript代码的最后添加以下代码片段,作为告诉Protractor不要过早结束并等待Angular完成其所有异步工作的方法,但此尝试也失败了:

 return browser.waitForAngular().then(function () {
      console.log('\n Waiting for angular to avoid this issue: 
      UnknownError: Error communicating with the remote browser. It may have died.');
      browser.driver.sleep(10000);
     });

还要注意那里有睡眠,但仍无法正常工作。

只有当我通过Windows VM中的Bamboo代理执行e2e测试 时,才会出现此错误。但是如果我在命令提示符下本地运行相同的测试,那么 就会毫无问题地通过

最后,当我的Bamboo代理在我的Windows10 VM中运行这些e2e测试时,我看不到浏览器打开,所以看起来他们无头地执行下面的量角器配置:

exports.config = {
  framework: 'cucumber',
  chromeDriver: "C:/Users/someUser/AppData/Roaming/npm/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.22.exe",
  seleniumServerJar: "C:/Users/someUser/AppData/Roaming/npm/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-2.53.1.jar",

  capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
      'args': ['--no-sandbox']
    }
  },

请注意,没有PhantomJs浏览器,因为Protractor团队不鼓励它们,他们不会自己使用它;因此我使用Chrome它似乎无头地运行因为我从未看到它打开但我知道测试是从日志文件输出运行,请参见下面的图片并注意测试PASSED但Bamboo测试计划如何失败,下面的图像中出现错误。 enter image description here

有关于此的任何想法吗?

0 个答案:

没有答案