WebDriver-> Estoy tratando de capturar la 'fecha' seleccionada de un UI-Calender. Quiero encontrar el elemento 'fecha' seleccionado usando javascript, para lo cual usé lo siguiente:

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#abc')");

String s=element.getAttribute("value");

System.out.println("  "+s);

Pero extrañamente cuando agrego las líneas anteriores, Firefox deja de responder, luego el script deja de funcionar .Versión firefox: 3.6

2
Mandy 13 feb. 2012 a las 14:53
Encontré algo Interesante sobre el uso de chromedriver, se muestra un rastro de falla "java.util.ArrayList no se puede convertir en org.openqa.selenium.WebElement".
 – 
Mandy
13 feb. 2012 a las 15:48
1
Eso es porque executeScript no devuelve WebElement, es para ejecutar JavaScript. ¿Por qué no lo haces find_element(By.id("abc")).getAttribute("value")?
 – 
p0deje
13 feb. 2012 a las 17:01
¡¡Sí!! Sé encontrar elementos, pero el punto aquí es que no podemos identificar un elemento usando javascript / jQuery, la documentación del controlador web sugiere que podemos hacerlo ...... [enlace] seleniumhq.org/docs/03_webdriver.html
 – 
Mandy
13 feb. 2012 a las 17:13

1 respuesta

La mejor respuesta

Eso es porque return $('#abc') devuelve una matriz de elementos DOM. Deberías usar return $('#abc')[0].

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#abc')[0]");
3
p0deje 13 feb. 2012 a las 17:51