2011-03-30 23 views
6

Esta es la situación:Selección y elemento de identificación con jQuery para usar en Selenio 2 API de Java

  • utilizo el API de Java de Selenio 2 para abrir y controlar una instancia del navegador Firefox
  • cargo el script de jQuery a una página a través de la ejecución de JavaScript
  • luego utilizo expresiones jQuery para seleccionar elementos y atravesar a través del árbol DOM

Ahora mi pregunta es, ¿hay algún modo encontrar un identificador único fo r cada uno de los elementos encontrados? Mi objetivo es obtener el mismo elemento con Selenium usando un selector Xpath o CSS. Por lo tanto, sería más directo si pudiera generar un selector inequívoco para los elementos en jQuery. Otras ideas son bienvenidas también

Necesito un enfoque automático para identificar elementos en jQuery, que se pueden "convertir" a elementos/localizadores de selenio.

/editar

para hacerlo más claro:

Si he elegido un elemento en jQuery:

webDriver.executeScript("var element = $('#myDiv input.test')"); 

Ahora, quiero algo como esto:

WebElement webElement = webDriver.executeScript("return element"); 

¿Es eso posible?

+1

Este es básicamente el otro sentido a esta pregunta: http://stackoverflow.com/q/5605456/675065 – Alp

Respuesta

9

he encontrado la solución, que es bastante fácil:

String jQuerySelector = "'#myDiv input.test'"; 
RenderedWebElement webElement = (RenderedWebElement) ((JavascriptExecutor) webDriver).executeScript("return $(" + jQuerySelector+ ").get(0);"); 

Trabajar con un elemento en jQuery que fue seleccionado Anteriormente: en selenio también funciona:

String jQuerySelector = "arguments[0]"; 
((JavascriptExecutor) webDriver).executeScript("return $(" + jQuerySelector+ ").doSomethingInJquery();", webElement); 
+0

Para usar la interfaz RenderedWebElement ¿qué paquete se debe importar en Java? –

+0

Podría haber cambiado a 'WebElement' – Alp

+0

Recibo el siguiente error durante el uso de jQuery en WebDriver con java: org.openqa.selenium.WebDriverException: $ no está definido (ADVERTENCIA: El servidor no proporcionó ninguna información de pila) Command duración o tiempo de espera: 915 milisegundos ... ¿Cómo puedo resolver esto? –

0

No estoy seguro de su problema exacto pero puede construir su localizador utilizando los atributos html id, name, class etc.

+0

Lo sé. ¿Pero hay un método automático que me da siempre un localizador válido para encontrar un elemento que he seleccionado en jQuery? – Alp

+0

No conozco jQuery y supongo que no existe tal método automático de selenio – Tarun

+0

Necesito un enfoque automático para identificar elementos en jQuery, que se pueden "convertir" a elementos/localizadores de selenio. – Alp

Cuestiones relacionadas