2012-04-11 12 views
5

selenium webdriver(java)を使用してサイトをテストしたいが、そのサイトにはajaxが含まれており、HTMLUnitにはajaxコンテンツが表示されません。WebDriver HTMLUnit with Ajax

回避策はありますか?

例:AJAX応答の後に現れなければならないとの要素との相互作用の前に

WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6); 
//login into your account 
this.login(driver); 
//click on edit Profile Link into an ajax-loaded tab 
driver.findElement(By.id("editProfile")).click(); 
//Result: org.openqa.selenium.NoSuchElementException 
+0

HTMLUnitDriver JavaScriptのサポートは私の個人的な経験からかなり悪く、エミュレーションはさらに悪いです。 ( –

答えて

5

使用待機状態。

WebDriverWait wait = new WebDriverWait(webDriver, 5); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_to_element"))); 

これにより、webDriverは5秒間エレメントを待機します。この質問は以前に尋ねられました。

+0

この問題は、WebDriver自体に焦点を当てていません。その問題は、Ajaxを使用したHtmlUnitDriverに焦点を当てています。 – Krzys

+2

WebDriverはインターフェイスです.HtmlUnitDriverなどは次のとおりです。その実装も同じように動作していますので、心配しないでください。 –