等待UI文本更新
Wait for UI text to be updated
作为我们应用程序的一部分,用户可以点击列表中的一个项目,这将改变屏幕上的数据负载,包括过滤器按钮上的文本。
例如,列表可以是城市伦敦纽约东京
点击伦敦将把过滤器标签从'All'更改为'1',而我们等待角控制器从api中计算出正确的文本,然后它更改为'London',在角控制器计算出正确的标签应该是什么时,这有一点延迟,而页面的其余部分则从我们的api加载更多的数据。
这个延迟导致测试在量角器失败,因为延迟只是足够长的量角器拿起'1'作为文本,而不是'伦敦',在睡眠一秒钟解决这个问题,但这个动作是通过测试执行了很多,不想每次睡觉,有没有一种方法,我可以等待一个角控制器完成或什么,所以我最终等待恰到好处的时间?
我知道protractor通常会等待angular,但我认为标签从'All'到'1'的初始变化是在欺骗protractor,让它认为它已经准备好继续了,因为它都是通过多个angular控制器和服务完成的
谢谢
可以显式地等待伦敦文本出现。几天前有人向我展示了这个方法,从那以后它一直很有用。
var EC = protractor.ExpectedConditions;
// Replace below with whatever locator is appropriate for your case
var elem = element(by.xpath("//div[contains(text(), 'London')]"));
browser.wait(EC.presenceOf(elem), 5000);
expect(elem.isPresent()).toEqual(true);
相关文章:
- CKeditor不会在源代码模式下更新文本区域
- 基于复选框 Jquery 更新文本框
- 在里面输入新文本后更新文本区域内容的值
- 根据复选框选择 jQuery 更新文本框
- 如何在手动插入一些文本后更新文本区域的ng模型
- 使用选择框中的值更新文本区域
- 使用特定 ID 更新文本框
- SQL生成的选择菜单,根据相关值更新文本框
- JavaScript>on更改输入&选择更新文本区域
- 从下拉框更新文本框
- 当通过javascript而不是按键/复制/粘贴更新文本输入时使用的事件处理程序
- 使用 ID 更新文本区域值,而不是在 AngularJs 中使用 ng-model
- 如何使用 JavaScript 基于其他文本框更新文本框值
- 单击输入按钮时更新文本区域内容
- 更新文本框相对于表达式的值
- JS不更新文本框
- html5 画布 - 更新文本
- Elfinder文件管理器,带有多个按钮更新文本输入
- 挖空文本输入修改可观察不更新文本
- 在javascript中从servlet获得响应后更新文本区域