2010-06-04 19 views
11

Usando selenium-rc y el cliente java, quiero probar un menú que se abre cuando el usuario mueve el mouse sobre él. Se cierra cuando el mouse sale del menú. Esto se hace usando :hover css, sin ningún javascript.Selenium y: hover css

En selenio, hay muchos métodos para las acciones del mouse, pero ninguno de ellos parece desencadenar ningún estilo css :hover que se utilizará.

Google muestra que no estoy solo con este problema, pero no ha habido una solución. Algunas personas comentan que tienes que agregar un código de JavaScript; sin embargo, en Selenium rc, no creo que tenga un lugar adecuado para el código de JavaScript adicional aportado por el usuario.

Mi deseo sería el siguiente código al trabajo, teniendo en cuenta que un div # navi_settings contenían el menú que contiene el - invisibles normalmente - un elemento:

selenium.mouseHover("css=div#navi_settings"); 
assertTrue(selenium.isVisible("//a[contains(text(), 'Text on link')]")); 

Por desgracia, el método moveHover() todavía no existe.

+0

Cómo se hizo resolver este problema? – aradhak

+0

Comprobando manualmente esto :-(. –

Respuesta

0

El método mouseOver activará una pseudoclass :hover.

+0

¿Desde cuándo? En el servidor de selenio v2.0 [a2], con Core v2.0 [a2], esto no funcionó, al menos con Firefox 3.5. –

+0

Luego use algunos javascript para hacer el menú es visible cuando necesita hacer clic en uno de sus elementos. Eso es lo que terminé haciendo, y funcionó bien. O intente hacer su pregunta en la lista de correo de Selenium. – techpeace

+0

lista de correo: bien, su punto, pero la visibilidad del menú es css driven, que funciona bien. Probar los clics en los elementos del menú no es el problema. Estoy probando * la visibilidad en sí * cuando el usuario se desplaza sobre el menú. Cambiar la aplicación para usar javascript en lugar de css está fuera de la cuestión. –

1

No he podido encontrar la manera de hacerlo utilizando la interfaz de Selenium. Sin embargo, desde que estoy usando Selenio 2, puedo usar la API WebDriver, según http://groups.google.com/group/selenium-developers/msg/8210537dde07155f?pli=1

En su caso, algo así como esto puede funcionar, si se puede actualizar a Selenio 2:

WebDriver webDriver; 
... 
((RenderedWebElement) webDriver.findElement(By.cssSelector("div#navi_settings"))).hover(); 
+1

This funciona en plataformas compatibles con eventos nativos de Selenium (Linux y Windows). En Mac, actualmente no tiene suerte: https://groups.google.com/group/webdriver/browse_thread/thread/c08444af61cc2898 – John