2013-06-04 29 views
2

我在測試的應用程序中有幾個菜單,需要將頂部菜單項移到另一個菜單項,以便顯示菜單的其餘部分(放下它)。Firefox中的webdriver mouseover停止工作

頂部菜單項看起來是這樣的:

<li> 
    <a href="javascript:void(0)">>   
    <span>Orders</span> 

我用幾行代碼,沒有任何問題,在過去的3或4個月:

WebElement webElement = driver.findElement(By.xpath("//li/a[span[text()='Orders']]")); 
new Actions(driver).moveToElement(webElement).build().perform(); 

這將鼠標懸停在'訂單'菜單項,然後讓我選擇其中一個下拉項目。

我現在使用FF21和WebDriver 2.33,懸停不再起作用。 「訂單」菜單項將被懸停,菜單將下降,但也會立即再次滾動。這阻止我選擇子菜單項。

我試過到目前爲止:

  • 加入上面的代碼後等待,讓我來選擇子菜單項: 沒有工作
  • 啓用本機事件在Firefox配置文件我使用: 行爲沒有變化

任何幫助非常感謝,因爲我沒有工作的菜單系統死在水中。

BTW:此代碼確實在IE中工作,所以它似乎是一個FF特定的問題?

+0

當菜單向回滾動時,鼠標仍然位於「訂單」菜單項上嗎?還是已經移開了?另外,顯而易見的問題是,我們必須問:手動測試時,FF21中是否有同樣的問題? –

+1

我可以確認在FF21 +硒-webdriver 2.33中存在的問題。我也發現了該https://code.google.com/p/selenium/issues/detail?id=4893 – zerkms

+0

@vincebowdren的錯誤:手動工作正常。光標(指針)在使用webdriver時不可見 – user973718

回答

1

基於Selenium的更新日誌(https://code.google.com/p/selenium/source/browse/java/CHANGELOG),似乎本機事件(因爲您使用的是Actions類)僅在Firefox 20中受支持。 請在changelog for v2.32.0中獲得更多信息。有一行:

「此版本支持Firefox verions:10esr,17esr,19,20」

變更記錄v2.33.0沒有任何說,有關支持火狐21

用Firefox 20試試你的代碼。

0

試試看下面的java腳本。它在我們的項目中工作。希望它對你也有用......乾杯...

String javaScript = "var evObj = document.createEvent('MouseEvents');" + "evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);" 
     + "arguments[0].dispatchEvent(evObj);"; 
     ((JavascriptExecutor) Driver.driver).executeScript(javaScript, element);