2012-04-11 10 views
5

Voglio testare un sito utilizzando selenio webdriver (java), ma quel sito contiene ajax e HTMLUnit non vede il contenuto di ajax.HTML WebDriver Problemi con Ajax

C'è una soluzione?

Esempio:

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 supporto javascript è piuttosto male per la mia esperienza personale, e l'emulazione è ancora peggio. Ho smesso di usarlo per i test di regressione poiché introduce più bug di quello che può rilevare :( –

risposta

5

uso condizione di attesa prima interazione con elemento con devono apparire dopo risposta ajax.

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

questo rende webDriver per attendere il tuo elemento durante 5 secondi. Questa domanda è stata posta prima.

+0

Il problema non è incentrato su WebDriver stesso, è focalizzato su HtmlUnitDriver con ajax ... – Krzys

+2

WebDriver è un'interfaccia. HtmlUnitDriver e così via implementazioni di esso. Funziona allo stesso modo. Non ti preoccupare di questo. –