2010-06-04 21 views
11

Usando selenio-rc e il client java, voglio testare un menu che si apre quando l'utente sposta il mouse su di esso. Si chiude quando il mouse lascia il menu. Questo è fatto usando :hover css, senza javascript.Selenio e: hover css

Nel selenio esistono molti metodi per le azioni del mouse, ma nessuno di essi sembra attivare uno stile css :hover da utilizzare.

Google dimostra che non sono solo con questo problema, ma non c'è una soluzione. Alcuni commentano che è stato necessario aggiungere del codice javascript; tuttavia, in selenio rc, non penso di avere nemmeno un posto adeguato per il codice javascript aggiuntivo fornito dagli utenti.

Il mio desiderio sarebbe il seguente codice a lavorare, visto che un div # navi_settings contenevano il menu che contiene il - normalmente invisibili - un elemento:

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

Purtroppo, il metodo moveHover() ancora non esiste.

+0

Come hai risolvere questo problema? – aradhak

+0

Testando manualmente questo :-(. –

risposta

0

Il metodo mouseOver attiverà una pseudoclass :hover.

+0

Da quando? Nel server di selenio v2.0 [a2], con Core v2.0 [a2], questo non ha funzionato, almeno con Firefox 3.5. –

+0

Quindi utilizzare alcuni javascript per fare il menu è visibile quando è necessario fare clic su uno dei suoi elementi. Questo è quello che ho finito, e ha funzionato bene. Oppure prova a porre la tua domanda sulla mailing list del Selenium. – techpeace

+0

mailing list: ok, il tuo punto, ma la visibilità del menu è css driven che sta funzionando bene Testare i clic sulle voci di menu non è un problema.Sto testando la * visibilità stessa * quando l'utente passa sopra il menu.Terminare l'applicazione per utilizzare javascript al posto del css è fuori questione –

1

Non riesco a trovare un modo per farlo utilizzando l'interfaccia Selenium. Tuttavia, dal momento che sto usando Selenio 2, posso utilizzare l'API WebDriver, come da http://groups.google.com/group/selenium-developers/msg/8210537dde07155f?pli=1

Nel tuo caso, qualcosa di simile a questo può funzionare, se è possibile effettuare l'aggiornamento a Selenio 2:

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

funziona su piattaforme che supportano gli eventi nativi di selenio (Linux e Windows). Su Mac, non sei fortunato al momento: https://groups.google.com/group/webdriver/browse_thread/thread/c08444af61cc2898 – John