如何使用量角器处理旋转器

时间:2013-12-28 06:02:35

标签: angularjs selenium-webdriver protractor

在我的AngularJS应用程序中,对于要加载的任何页面,有两件事正在加载 首先是页面的内容,其次是一些后端资源。 在加载后端资源时,前端会出现一个微调器,用户无法对页面内容执行任何操作。

现在,当我使用量角器编写应用程序的自动化测试套件时,我无法找到一种技术,等待微调器从中消失开始测试前的屏幕。

请帮助我。

3 个答案:

答案 0 :(得分:11)

你在Andres D的评论中提到的

IsDisplayed应该是适合你情况的正确评论。但是,它会返回一个承诺,因此您无法使用

return !$('.spinner').isDisplayed()

因为那总是会返回false。

尝试以下操作,看看它是否有效。

browser.wait(function() {
  return $('.spinner').isDisplayed().then(function(result){return !result});
}, 20000);

答案 1 :(得分:2)

如果您正在等待某事发生,可以使用browsser.wait()

例如,如果微调器具有类名“spinner”

browser.wait(function() {
  // return a boolean here. Wait for spinner to be gone.
  return !browser.isElementPresent(by.css(".spinner"));
}, 20000);

20000是超时(以毫秒为单位)。

您的测试将等到符合条件。

答案 2 :(得分:0)

对于那些处理非角度应用程序的人:

    browser.wait(
      EC.invisibilityOf(element(by.css(selector))),
      5000,
      `Timed out waiting for ${selector} to not be visible.`
    )

https://www.protractortest.org/#/api?view=ProtractorExpectedConditions.prototype.invisibilityOf