我怎样才能让Selenium WebDriver等一段时间?

Pri*_*nce 4 ajax selenium webdriver selenium-webdriver

我可以编写以下代码来请求WebDriver等待一段时间

new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfElementLocated(By.id("loginBox")));
Run Code Online (Sandbox Code Playgroud)

但,

实际上我发送AJAX请求到服务器.在这里,我给了20毫秒等待.20ms或500ms并不重要.如果响应超过给定时间(例如20ms).然后我会例外地发现没有这样的元素.

那么有更好的方法要求服务器等待吗?

谁能帮我?

提前谢谢,Gnik

Har*_*ddy 5

在使用此代码继续执行之前,您可以确保填充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("");
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在,此代码检查employeeName文本框中的文本是否为空.如果它为空,则驱动程序等待10秒,或者如果由于AJAX调用而在文本字段中填充了某些数据,则继续执行.

如果这不起作用,您可以发布一些用于进行AJAX调用的代码.