在测试ajax页面时,有一个难题是如何等待页面加载完成。
我在web上找到的方法是显式地等待某个元素加载。
在htmlunit中还有另一种方法,那就是将所有异步javascript转换为同步javascript。
client.setAjaxController(new NicelyResynchronizingAjaxController());这是更通用的,因为我们不需要确切地知道等待哪个元素。
有没有办法用firefoxdriver实现这一点。
发布于 2013-05-24 01:47:20
这就是在Ajax请求之后等待加载到DOM中的特定元素的方式。
假设您有以下内容:
<div id="postAjaxRequest">This only appears after something request me!</div>您所要做的就是启动一个WebDriver和WebDriverWait元素,如下所示:
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这是我能解释的最简单的解释。
https://stackoverflow.com/questions/16716421
复制相似问题