2010-06-04 104 views
11

使用selenium-rc和java客戶端,我想測試一個菜單,當用戶將鼠標移到它上面時打開。它在鼠標離開菜單時關閉。這是使用:hover css完成的,沒有任何javascript。Selenium和:hover css

在硒中,有許多鼠標操作的方法,但它們都沒有觸發任何css :hover樣式。

谷歌表明,我並不孤單,這個問題,但沒有解決方案。有些人評論說你必須添加一些JavaScript代碼;然而,在硒rc,我不認爲我甚至有一個適當的地方用戶貢獻額外的JavaScript代碼。

我的願望是下面的代碼工作,因爲一個div#navi_settings包含其中包含菜單 - 通常不可見 - 一個元素:

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

不幸的是,moveHover()尚不存在的方法。

+0

你是怎麼解決這個問題? – aradhak 2012-07-24 10:42:56

+0

通過手動測試:-(。 – 2012-09-03 11:15:45

回答

0

mouseOver方法將激活一個:hover僞類。

+0

從什麼時候開始?在硒服務器v2.0 [a2]中,使用Core v2.0 [a2],這個不起作用,至少用firefox 3.5。 – 2010-08-19 15:18:27

+0

然後用一些javascript來製作當你需要點擊它的一個元素時,菜單就可見了,這就是我最終做的,並且它工作的很好,或者試着在Selenium郵件列表上詢問你的問題。 – techpeace 2010-08-23 15:39:06

+0

郵件列表:ok,你的觀點,但菜單的可見性是測試點擊菜單項不是問題,當用戶將鼠標懸停在菜單上時,我正在測試*可見性本身*將應用程序更改爲使用javascript而不是css是不可能的 – 2010-08-26 10:45:20

1

我找不到使用Selenium界面執行此操作的方法。然而,由於我使用的硒2,我可以使用webdriver的API,按照http://groups.google.com/group/selenium-developers/msg/8210537dde07155f?pli=1

在你的情況,這樣的事情可能工作,如果你可以升級到硒2:

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

This在支持Selenium本地事件的平臺上運行(Linux和Windows)。在Mac上,目前您運氣不佳:https://groups.google.com/group/webdriver/browse_thread/thread/c08444af61cc2898 – John 2010-12-22 19:12:23