2012-04-11 27 views
5

Quiero probar un sitio usando Selenium webdriver (java), pero ese sitio contiene ajax y HTMLUnit no ve el contenido de AJAX.WebDriver Problemas de HTMLUnit con Ajax

¿Hay una solución?

Ejemplo:

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 es bastante malo por mi experiencia personal, y la emulación es aún peor. Dejé de usarlo para las pruebas de regresión ya que presenta más errores de los que puede detectar :( –

Respuesta

5

uso condición de espera antes de la interacción con el elemento con debe aparecer después de la respuesta ajax.

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

esto hace que webDriver espere su elemento durante 5 segundos. Esta pregunta fue hecha antes.

+0

El problema no está enfocado en WebDriver, está enfocado en el HtmlUnitDriver con ajax ... – Krzys

+2

WebDriver es una interfaz. HtmlUnitDriver y otros son implementaciones de él. Está funcionando de la misma manera. No te preocupes por eso. –

Cuestiones relacionadas