1

ajax ページをテストする場合、ページがロードされるまでどのように待機するかという課題があります。
私がウェブで見つけた方法は、特定の要素がロードされるのを明示的に待つことです。

htmlunit には、すべての非同期 JavaScript を同期 JavaScript に変換する別の方法があります。

 client.setAjaxController(new NicelyResynchronizingAjaxController());

どの要素を待機するかを正確に知る必要がないため、これはより一般的です。
firefoxdriver でこれを実装する方法はありますか。

4

1 に答える 1

2

これは、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

これは私が説明できる最も簡単です。

于 2013-05-23T17:47:20.223 に答える