Webdriver:等到staleness不能仅在Safari上运行

时间:2017-11-09 22:36:41

标签: selenium selenium-webdriver safari automated-tests

有一个简单的场景需要等到一个微调器从DOM中消失,所以我的代码是:

driver.findElements(By.id('plain-spinner'))
    .then((eles) => {
      if (eles.length > 0) return driver.wait(until.stalenessOf(eles[0]), 12000, 'Spinner cannot disappear');
});

上述代码适用于除Safari之外的所有浏览器。在safari中,它只是等到超时并且打印'Spinner不能消失',就像什么也没发生一样。

版本:操作系统是mac 10.12,selenium-webdriver是3.4,safari是11.01。

1 个答案:

答案 0 :(得分:0)

我想通过以下不同方法解决您的问题:

如果您正在处理的WebPagespinner,则该应用程序基于AngularJS。因此,我不会将ExpectedConditions子句用作 stalenessOf 作为spinner元素,而是使用其他一些子句,如下所示:

  • 一旦微调器消失,如果您尝试点击下一个WebElement,请使用 elementToBeClickable((By.id("next_element"))
  • 一旦微调器消失,如果您尝试验证是否存在任何WebElement使用 presenceOfElementLocated((By.id("next_element"))