2011-12-27 45 views
4

有沒有人想出如何觸發通過水豚一個hoverIntent事件?在水豚/ Selenium測試觸發hoverIntent

在我的Rails應用程序的主視圖,編輯按鈕出現在表格單元格中,當用戶把鼠標停留在該單元格。

我最近添加了jQuery hoverIntent插件來延遲這些按鈕的外觀,這樣當用戶在頁面上快速移動鼠標時,UI看起來不像是一個繁忙的交換機板。

加入hoverIntent爆出幾個黃瓜,水豚,Selenium測試,很遺憾。測試已經使得按鈕會出現在與這樣的步驟(簡化):

And /^I hover on the table cell with ID "(.*)"$/ do |cell_id| 
    selector = "td#" + cell_id 
    js = %Q{ (function() { jQuery("#{ selector }").mouseover(); })() } 
    page.evaluate_script js 
end 

這對於普通鼠標懸停事件效果不錯,但它不會觸發hoverIntent。

一種(駭人聽聞的)解決方案是創建命名函數來傳遞給mouseover和mouseout行爲的hoverIntent(而不是我現在正在做的匿名內聯函數)。然後Capybara步驟可以通過名稱調用mouseover函數,並獲得相同的結果。

這側步的hoverIntent功能測試,雖然如此,它不是最佳的。

在此先感謝您的任何建議。

回答

0

對於hoverIntent註冊相信瀏覽器需要睡你的hoverIntent延遲的時間。