我如何使用量角器和我的文件配置等待元素出现?
How Can I wait to an element to appears using protractor and my file conf?
我试图使用量角器等待我的输入'用户名'出现,然后在其上插入值。我该怎么做呢?
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');
相关文章:
- Chrome扩展:等待元素加载(async js)
- jQuery-等待此元素,然后执行1次
- 如何正确地等待元素获得正确的宽度,然后在Angular 2中访问它
- Selenium-webdriver (Java Script) 等待元素消失
- Selenium webdriver JS-如何等待元素可见
- 在promise链中等待DOM元素中的突变
- jQuery文档是否准备好等待通过Backbone动态注入的html元素
- 在 Capybara 中,如何让 #find 等待具有相同类的不同元素出现
- 无法在 jquery 中获取元素动画以等待另一个元素动画
- 实现等待元素存在 N 秒,然后使用 JavaScript 和 jQuery lib 与元素交互
- 等待元素更改其值(文本)
- 等待文档鼠标按下完成,然后元素单击才能开始
- 显示模态并在循环时等待每个元素的操作
- 等待多个元素的动画结束
- 将元素滑出屏幕--等待--滑回原位
- 如何在html中调用元素的onClick事件并等待单击发生.来自javascript中的另一个函数
- 如何使用reduce和promise为数组中的每个元素等待AsyncRequest
- 如何在WebDriverJS中等待元素可点击
- 如何等待,直到一个元素存在dojo
- Selenium找不到某些元素b/c JavaScript页面没有完成加载-隐式/显式等待不起作用