【问题标题】:selenium firefoxdriver - wait for ajaxselenium firefoxdriver - 等待ajax
【发布时间】:2013-05-23 14:20:14
【问题描述】:

在测试 ajax 页面时,如何等待页面加载是一个挑战。
我在网上找到的方法是明确等待某个元素加载。

htmlunit中还有一种方式,就是将所有异步javascript转换为同步javascript。

 client.setAjaxController(new NicelyResynchronizingAjaxController());

这更通用,因为我们不需要确切知道要等待哪个元素。
有没有办法用 firefoxdriver 来实现。

【问题讨论】:

  • 等待特定元素可用,然后再尝试使用它。

标签: selenium-webdriver selenium-firefoxdriver


【解决方案1】:

这就是在 Ajax 请求之后等待特定元素加载到 DOM 中的方法。

假设你有以下:

<div id="postAjaxRequest">This only appears after something request me!</div>

您所要做的就是使用一个开始的WebDriverWebDriverWait 元素,如下所示:

WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 10); // Starts a wait of a maximum 10 seconds.

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("postAjaxRequest")));
driver.findElement(By.id("postAjaxRequest")).click(); // or any other action

这是我能解释的最简单的。

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 2011-07-25
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多