ajax - 如何让 Selenium WebDriver 等待一段时间?

标签 ajax selenium webdriver selenium-webdriver

我可以写下面的代码让 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/

相关文章:

selenium - 如何在appium中获取带有特定标签的ADB logcat?

java - 将 jQuery 与 WebDriver 结合使用 (JAVA)

selenium - 错误后如何继续使用webdriver/selenium

javascript - TypeError : $. ajax(...).done(...).fail(...).complete 不是函数

javascript - 使用ajax将变量传递回页面

javascript - 使用 JavaScript 在服务器上保存文本文件

javascript - 从ajax请求获取数据到Angular

java - 在 Jenkins 节点上运行 headless 浏览器时出现 ElementNotVisibleException。测试用例使用 chrome broswer 在本地机器上成功运行

java - 我已经创建了 chrome 驱动程序对象,然后我得到了 java.lang.NullPointerException

c# - 使用 PhantomJS 下载文件