1

我是量角器的初学者。我做了运行量角器所需的安装。当尝试运行量角器文档中提到的示例脚本时,我收到 ETIMEDOUT 错误。并且 url 指向 127.0.0.1:4444。同样的 url 也不能手动访问。但是当尝试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);
  });
});

4

3 回答 3

2

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

因为我想你只是想运行你的量角器测试,只要你用 下载了二进制文件webdriver-manager update,你可以做以下两个选项之一:

  1. 设置directConnect: true(和删除seleniumAddress)。这适用于没有 selenium 独立服务器的 chrome 或 firefox(版本 47*)。
  2. 一起删除seleniumAddress。Protractor 将在测试前为您启动 selenium 独立服务器,然后在测试结束时将其拆除。

注意:要使上述工作正常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+,但仍有一些未解决的问题。
于 2016-12-30T02:18:50.873 回答
1

为此,您需要 2 个终端。

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

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

本地主机与 127.0.0.1 相同。

于 2016-12-12T10:32:24.000 回答
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']
};
于 2016-12-30T15:24:01.003 回答