量角器错误105和webdriver-manager交互

时间:2017-07-12 00:14:19

标签: selenium webdriver protractor

我以前见过这个问题,但答案中没有一个能解决我的问题。我正在尝试做量角器教程,这里是conf.js文件:

// conf.js
exports.config = {
    framework: 'jasmine',
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['spec.js']
}

这是spec.js文件:

// spec.js
describe('Protractor Demo App', function() {
    it('should have a title', function() {
        browser.get('http://juliemr.github.io/protractor-demo/');
        expect(browser.getTitle()).toEqual('Super Calculator');
    });
});

我在运行另一个项目时也获得了ERROR100,但为了简单起见,我将专注于这个项目。这是我得到的错误:

E/configParser - Error code: 105
E/configParser - Error message: failed loading configuration file conf.js
E/configParser - C:\Workspace\ProtractorCalc\conf.js:6

我知道这必须与我的webdriver / selenium有关,但我不太了解它可以正确调试它。我在运行conf.js文件之前运行webdriver-manager更新和webdriver-manager启动,当我执行webdriver-manager启动时,它看起来像是在运行,但也提示我结束webdriver-manager启动以便让我控制命令行:

运行它时的最后一行是" Selenium Server启动并运行" 但是为了能够输入量角器conf.js,我必须输入ctrl + c然后我才能回复:

Attempting to shut down selenium nicely 
Staying alive until the Selenium Standalone process exists
events.js:163 throw er; //Unhandled 'error' event
Error: read ECONNRESET
     at exports._errnoException (util.js:1050:11)
     at TCP.onread(net.js.581:26)
Terminate batch job (Y/N)?

因此,webdriver-manager将我踢出去,这就是为什么量角器的conf.js文件失败了?

2 个答案:

答案 0 :(得分:1)

正如你所说,

webdriver-manager start启动了webdriver,它正在正常运行。但是,当您按ctrl+c以“重新获得控制权”时,您实际上是在终止该过程。就在那时,webdriver停止了,这就是量角器无法运行的原因。

正确执行此操作的最简单方法是打开两个命令窗口:在第一个窗口中运行webdriver-manager start,在第二个窗口中运行protractor conf

答案 1 :(得分:0)

首先,日志记录引用conf.js文件。当我查看你的文件时,我想问题是你没有提供运行测试的能力。换句话说,你想用什么浏览器运行你的测试?

这是一个example项目,其中包含示例conf.js - 文件。如果您将文件更改为此文件我认为它应该没有问题



// An example configuration file.
exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Capabilities to be passed to the webdriver instance.
  capabilities: {
    'browserName': 'chrome'
  },

  // Framework to use. Jasmine is recommended.
  framework: 'jasmine',

  // Spec patterns are relative to the current working directory when
  // protractor is called.
  specs: ['spec.js'],

  // Options to be passed to Jasmine.
  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000
  }
};