我们正在使用以下代码段,以便安全地传递到下一个测试步骤。
private void waitTextPresent(String toBeExpectedText) throws InterruptedException {
for (int second = 0;; second++) {
if (second >= 60) {
// not found
}
try {
if (driver.findElement(By.cssSelector("BODY")).getText()
.matches(toBeExpectedText))
break;
} catch (Exception e) {
}
Thread.sleep(1000);
}
}
我们正在使用Selenium 2.44.0
(这似乎是稳定的版本)。 Firefox
版本为37.0,因为v38和v39存在问题且以前的版本速度很慢。
但是,即使此代码段运行速度太慢,以至于测试的总时间太长。有没有办法以更有效的方式重写这个片段?
答案 0 :(得分:2)
您可以使用Expected Conditions.
根据您的要求,这一行代码就可以了。
new WebDriverWait(driver,60).until(ExpectedConditions.textToBePresentInElement(element, txt))
;