如何使用 WebDriverWait 等到属性更改?
在我的 AUT 中,我必须等待按钮启用才能继续,不幸的是,由于开发人员对页面的编码方式,我无法使用 WebElement 的 isEnabled() 方法。开发人员正在使用一些 CSS 来使按钮看起来像被禁用,因此用户无法单击它,并且方法 isEnabled 总是为我返回 true。所以我要做的是获取属性“aria-disabled”并检查文本是“true”还是“false”。到目前为止,我一直在做的是一个带有 Thread.sleep 的 for 循环,如下所示:
for(int i=0; i<6; ++i){
WebElement button = driver.findElement(By.xpath("xpath"));
String enabled = button.getText()
if(enabled.equals("true")){ break; }
Thread.sleep(10000);
}
(如果不正确,请忽略上面的代码,只是我正在做的伪代码)
我确信有一种方法可以使用 WebDriverWait 实现类似的东西,这是我无法弄清楚的首选方法。这就是我想要实现的目标,即使以下内容不起作用:
WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOf(refresh.getText() == "true"));
显然它不起作用,因为该函数需要一个 WebElement 而不是字符串,但这是我想要评估的。有任何想法吗?