我是量角器的初学者。我做了运行量角器所需的安装。当尝试运行量角器文档中提到的示例脚本时,我收到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);
});
});
答案 0 :(得分:2)
我同意其他回复。 http://localhost:4444/wd/hub与http://127.0.0.1:4444/wd/hub相同。通常这是在/etc/hosts
文件中定义的。
由于我认为您只是尝试运行Protractor测试,只要您已经使用webdriver-manager update
下载了二进制文件,就可以执行以下两个选项之一:
directConnect: true
(并删除seleniumAddress
。这适用于没有selenium独立服务器的chrome或firefox(版本47 *)。seleniumAddress
。量角器将在测试之前为您启动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
。
答案 1 :(得分:1)
你需要2个终端。
在第一个终端中,运行以下命令: webdriver-manager启动 这将创建一个服务器供节点/客户端访问(您已在seleniumAddress中添加)
在第二个终端中,运行以下命令: 量角器conf.js 这将使用在http://localhost:4444/wd/hub创建的服务器启动您的脚本。
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']
};