等待UI文本更新

时间:2015-05-27 10:47:34

标签: javascript angularjs protractor

作为我们应用程序的一部分,用户可以单击列表中的项目,然后更改屏幕上的数据加载,包括过滤器按钮上的文本。

例如,列表可以是城市 伦敦 纽约 东京

点击伦敦会更改“全部”的过滤标签。到' 1'当我们等待一个角度控制器计算出来自我们的api的正确文本时,它会变为“伦敦'稍微有点延迟,而角度控制器计算出正确的标签应该是什么,而页面的其余部分从我们的api加载更多数据。

这种延迟导致量角器中的测试失败,因为延迟时间足够长,以便量角器能够接收到#1;' 1'作为文本而不是“伦敦”,睡了一秒就可以解决这个问题,但是这个动作通过测试很多,而且每次都不想睡觉,有没有办法可以等待一个角度控制器完成或某事,所以我最终等待了适当的时间?

我知道量角器正常等待角度,但我认为标签的初始变化来自于' All'到' 1'正在愚弄量角器认为它已准备好继续,因为它全部通过多个角度控制器和服务来完成

由于

1 个答案:

答案 0 :(得分:2)

您可以明确等待伦敦文字出现。这种方法在几天前就已经向我展示了,而且从那以后它非常有用。

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);