2013-05-01 66 views
2

硒的webdriver 2.31.0 使用Scala 2.9硒的webdriver懸停不工作

任何人都知道該怎麼做在Firefox鼠標懸停?我基本上想把鼠標懸停在一個元素上來顯示一個工具提示。

此代碼無法將鼠標移到指定的元素上。

 val webElement = webDriver.findElement(By.cssSelector(myElement.queryString)) 
     val builder = new Actions(webDriver) 
     val hover = builder.moveToElement(webElement).build() 
     hover.perform() 

我也曾嘗試鼠標事件沒有成功(這裏WebDriver mouseOver is not working properly with selenium grid描述)

+1

您是否收到任何錯誤訊息? – 2013-06-11 16:25:32

+0

我也遇到同樣的問題,當我在代碼上運行鼠標(與上面的代碼相同)時,出現鼠標並將其移除。任何人都請幫我找出這個。我正在使用最新的Chrome瀏覽器。 – 2014-07-15 06:11:24

回答

0

這有點傳聞,因爲我沒有一個確切的技術解釋,但我已經在過去經歷過這一點,已通過升級硒補救。

我檢查的第一件事是確保我的硒是最新的。這包括依賴項,獨立服務器和瀏覽器驅動程序(儘管在這種情況下,Selenium不包含Firefox)。

另一個與Firefox更直接相關的可能(更可能)原因是Firefox本身。我的經驗是,Firefox更新可能會不時打破一些硒功能,特別是懸停。我發現升級硒,或者如果沒有更新發布,降級Firefox將解決問題。

我希望我有更詳細的信息給你,但我仍然在自己學習這種情況的更精細的細節。如果沒有別的,我希望這能指出你朝着正確的方向。

1

既然你沒有帶說你有任何錯誤,

  • 構建之後()執行(),提供了一個wait方法說,Thread.sleep()方法進行一定的時間,因爲有是mousehover在幾秒鐘內執行的可能性,並且可能無法看到工具提示。

  • Makesure的定位是正確的(因爲你可能會指向一些其它定位器不顯示任何提示)

  • Makesure你Firefox支持的mousehover功能

的代碼可能類似於作爲與您的,但給它一試(JAVA),

 Actions builder = new Actions(driver); 

     WebElement we = driver.findElement(locator); 

     Actions perf= builder.moveToElement(we).build(); 

     perf.perform(); 

     Thread.sleep(1000); 

你可以看的出來,鏈接,您的文獻:#firefox issue

1

由於您的問題是在Firefox中,您可能需要啓用Native Events與webdriver的,特別是

FirefoxProfile profile = new FirefoxProfile(); 
profile.setEnableNativeEvents(true); 
WebDriver driver = new FirefoxDriver(profile); 

我不得不這樣做是爲了讓拖放在Firefox工作在Unix,但它的工作在Windows上使用相同的代碼。