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

How Can I wait to an element to appears using protractor and my file conf?

本文关键字:元素 等待 配置 文件 何使用 量角器 我的      更新时间:2023-09-26

我试图使用量角器等待我的输入'用户名'出现,然后在其上插入值。我该怎么做呢?

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

使用预期条件来等待特定的条件,例如,等待元素出现或可见。使用sendKeys来填充输入。

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

如果你的应用是一个Angular应用,如果你做的一切都是正确的,那么你不需要等待元素或页面加载。

Protractor为你做了。参考API文档中的WaitForAngular

也检查这个你感兴趣。在我的博客Protractor Over Selenium上写了更多信息

我想假设两件事

  • 使用元素(by.id())的快捷方式
  • 设置变量为let,而不是var
  • 为等待提供超时,否则将是无止境的,并且只会在测试超时时失败(浪费等待时间)
  • 提供等待失败错误消息(等待函数中的第三个参数)-失败时更好的可读性
  • 不需要将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');