如何使用量角器和我的文件conf等待元素出现?

时间:2016-09-01 20:57:42

标签: javascript protractor

我正在尝试使用量角器等待我的输入'Username'出现,然后在其上插入值。我怎么能这样做?

browser.get('http://localhost:5555/#');
var login = browser.driver.findElement(by.id('Username'));

3 个答案:

答案 0 :(得分:0)

使用Expected Conditions等待某些条件,即元素存在或可见。使用sendKeys填充输入。

var login = element(by.id('Username'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(login)).then(function() {
    login.sendKeys('myuser');
});

这属于您的规范,而不是您的配置。

答案 1 :(得分:0)

如果您的角色应用是Angular,如果您正在做的一切正确,那么您无需等待元素或页面加载。

量角器为你做到了。请参阅WaitForAngular

的API文档

另外检查一下你感兴趣。在我的博客Protractor Over Selenium

上写了更多信息

答案 2 :(得分:0)

我会假设几件事

  • 使用元素的快捷版本(by.id())
  • 将变量设置为let,而不是var
  • 提供等待超时,或者它将是无穷无尽的,并且只会在测试超时时失败(浪费时间等待)
  • 提供等待失败错误消息(等待功能中的第3个参数) - 更好的故障可读性
  • 无需将sendKeys()置于回调中,即使没有这个,量角器controlFlow也会以正确的顺序执行命令。

以下是代码示例:

let loginField = $('#Username');
let EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(loginField), 3000, 'Login field should be visible before entering text');
loginField.sendKeys('myuser');