运行量角器conf.js时出现ETIMEDOUT错误

时间:2016-12-09 03:28:34

标签: selenium-webdriver protractor webdriver-manager

我是量角器的初学者。我做了运行量角器所需的安装。当尝试运行量角器文档中提到的示例脚本时,我收到ETIMEDOUT错误。并且网址指向127.0.0.1:4444。也无法手动访问相同的网址。但是在尝试http://localhost:4444/wd/hub时,页面会正常打开。我不知道为什么conf.js试图访问127.0.0.1:4444,即使我将'seleniumAddress'参数提供给'http://localhost:4444/wd/hub'。请帮助我们解决这个问题

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

describe('angularjs homepage todo list', function() {
  it('should add a todo', function() {
    browser.get('https://angularjs.org');

    element(by.model('todoList.todoText')).sendKeys('write first protractor test');
    element(by.css('[value="add"]')).click();

    var todoList = element.all(by.repeater('todo in todoList.todos'));
    expect(todoList.count()).toEqual(3);
    expect(todoList.get(2).getText()).toEqual('write first protractor test');

    // You wrote your first test, cross it off the list
    todoList.get(2).element(by.css('input')).click();
    var completedAmount = element.all(by.css('.done-true'));
    expect(completedAmount.count()).toEqual(2);
  });
});

3 个答案:

答案 0 :(得分:2)

我同意其他回复。 http://localhost:4444/wd/hubhttp://127.0.0.1:4444/wd/hub相同。通常这是在/etc/hosts文件中定义的。

由于我认为您只是尝试运行Protractor测试,只要您已经使用webdriver-manager update下载了二进制文件,就可以执行以下两个选项之一:

  1. 设置directConnect: true(并删除seleniumAddress。这适用于没有selenium独立服务器的chrome或firefox(版本47 *)。
  2. 一起删除seleniumAddress。量角器将在测试之前为您启动selenium独立服务器,然后在测试结束时将其拆除。
  3. 注意:要使上述工作正常,webdriver-manager update应从项目目录运行,以将二进制文件下载到正确的目录。类似node node_modules/.bin/webdriver-manager update./node_modules/.bin/webdriver-manager update的内容应将驱动程序二进制文件下载到node_modules/protractor/node_modules/webdriver-manager/selenium

    • 那么为什么Firefox 47,目前较新的版本不受支持。我们目前正在测试Firefox 48+,但仍有一些未解决的问题。

答案 1 :(得分:1)

你需要2个终端。

  1. 在第一个终端中,运行以下命令: webdriver-manager启动 这将创建一个服务器供节点/客户端访问(您已在seleniumAddress中添加)

  2. 在第二个终端中,运行以下命令: 量角器conf.js 这将使用在http://localhost:4444/wd/hub创建的服务器启动您的脚本。

  3. localhost与127.0.0.1相同。

答案 2 :(得分:0)

如果localhost与127.0.0.1不同,则听起来您的主机文件已经被播放或者有一些更恶劣的网络问题。我觉得我们没有足够的信息来正确调试您遇到此问题的原因,但我想建议一个解决方法。为什么不使用实际的本地内部IPv4地址?

要在Windows中输入您的IPv4地址列表

ipconfig | findstr /R /C:"IPv4 Address"

获取Linux类型

中的IPv4地址列表
hostname -i

要在Mac上输入您的IPv4地址

ifconfig |grep inet

mac上的地址应位于inet和netmask之间的最后一行

您的配置文件应该在

之后看起来像这样
exports.config = {
  seleniumAddress: 'http://192.138.0.100:4444/wd/hub',
  specs: ['todo-spec.js']
};