2011-09-27 9 views
9

¿Existe una solución conocida para realizar Eval (ejecución de Javascript) en Webdriver, enlaces de Ruby?¿Cómo ejecutar JavaScript en Ruby prueba escrita de Webdriver?

El equivalente del siguiente ejemplo en Java.

WebElement element = driver.findElement(By.id("foo")); 
String name = (String) ((JavascriptExecutor) driver).executeScript(
"return arguments[0].tagName" , element) 

Respuesta

15

El Rubí equivalente sería:

name = driver.execute_script("return arguments[0].tagName" , element) 

(para obtener el nombre de la etiqueta también se puede llamar simplemente element.tag_name)

+0

Gracias! Exactamente lo que estaba buscando. – Yulia

1

Gracias por publicar esta respuesta. Me ayudó mucho. Estuve buscando en Google todo el día para descubrir cómo ejecutar código JavaScript dentro de Ruby.

@driver.execute_script("arguments[0].scrollIntoView(true);", element)

Al hacer esto, yo era capaz de desplazarse en el elemento específico antes de evento de clic. Esto podría ayudar a otros un poco.

tuve que usar JavaScript alternativa porque por alguna razón esto no era: trabajando para mí element.location_once_scrolled_into_view

Gracias.

+0

¡Exactamente lo que estaba tratando de hacer, gracias! He extendido mi 'Selenium :: WebDriver :: Element' para incluir esto en los elementos, pero no he podido encontrar una forma de acceder al controlador sin pasarlo como un parámetro requerido. –

Cuestiones relacionadas