2012-08-02 93 views
2

我似乎無法讓actionbuilder在selenium webdriver中工作。我試圖自動化一個使用Javascript的菜單。我需要將鼠標懸停然後移動,然後單擊鼠標懸停後出現的鏈接。ruby​​ + selenium-webdriver actionbuilder

$driver.find_element(:id, "top_menu").find_elements(:tag_name, "a").each{ |a| 
    if a.attribute('href').include? "javascript" 
    then w = a 
    $driver.action.move_to(w).perform 
    break 
    end 
} 

我意識到,我對這個元素狩獵是有些模糊,而不是一個最佳實踐。我已經爲這個元素請求了一個id。任何建議如何使用動作建立者或更好的方式來自動化鼠標移動將不勝感激。

這是我得到的錯誤。
`generateErrorForNativeEvents':無法執行本地交互:無法加載本地事件組件。 (硒:: webdriver的::錯誤:: InvalidElementStateError

感謝

回答

1

並不積極,但我想更新到Firefox 14.0.1可能已經打破它。我們的測試剛剛分手了。我還在工作在修復

UPDATE:。 呀,我降級到Firefox 13.0.1和我的測試,現在正在

+0

嗯,這將是一個很大的巧合。我第一次使用它,它已經壞了。謝謝你的提示。我會嘗試並回復你。 – Zach 2012-08-06 21:55:11

+0

或者我升級了Selenium Webdriver gem 2.25.0這似乎也是個伎倆 – Zach 2012-08-06 23:14:55

0

我面臨InvalidElementStateError的同樣的問題:無法執行原生交互:無法加載本地事件成分當我試圖雙擊一個元素

當我加入以下行

問題解決了

配置=硒:: ::的webdriver火狐:: Profile.new

profile.native_events =假

能力=硒:: ::的webdriver遠程:: Capabilities.firefox(:firefox_profile =>配置文件)

@@司機=硒:: WebDriver.for:火狐,:desired_capabilities =>功能

注: - 一旦你這樣做,Firefox測試現在將通過Javascript事件觸發模擬用戶交互而不是本地點擊。這有其優點和缺點。希望能幫助到你!