我可以写下面的代码让 WebDriver 等待一段时间
new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfElementLocated(By.id("loginBox")));
但,
实际上我向服务器发送 AJAX 请求。在这里,我给了 20 毫秒的等待时间。 20ms 或 500ms 无关紧要。如果响应超过给定的时间(例如 20 毫秒)。然后我会异常(exception),没有找到这样的元素。
那么有没有更好的方法让服务器等待呢?
谁能帮我?
提前致谢,
格尼克
最佳答案
在继续执行此代码之前,您可以确保已填充了 employeeName 文本框 -
new WebDriverWait(driver,10).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
String text = driver.findElement(By.id("employeeName")).getText();
return !text.equals("");
}
});
现在此代码检查employeeName 文本框中的文本是否为空。如果它是空白的,驱动程序会等待 10 秒,或者如果由于 AJAX 调用在文本字段中填充了一些数据,则它会继续执行。
如果这不起作用,您可以发布一些用于进行 AJAX 调用的代码。
关于ajax - 如何让 Selenium WebDriver 等待一段时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11928813/