2011-12-27 17 views
4

Capybara経由でhoverIntentイベントをトリガーする方法を知りましたか?Capybara/SeleniumテストでhoverIntentをトリガーする

私のRailsアプリケーションのメインビューでは、ユーザーがそのセル上にマウスを置くと、編集ボタンが表のセルに表示されます。

最近、jQueryのhoverIntentプラグインを追加してこれらのボタンの外観を遅らせることで、ユーザがページ上をすばやくマウスを動かしたときにUIが混雑したスイッチボードのように見えないようにしました。

残念ながら、hoverIntentを追加するといくつかのCucumber-Capybara-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 

これは、通常のmouseoverイベントのためによく働いたが、それはhoverIntentをトリガしません:テストは、ボタンがこの(簡体字)のようなステップで表示されます作っていました。

マウスオーバーやマウスアウトの動作(私が今やっているような匿名のインライン関数ではなく)のために、hoverIntentに渡す名前付き関数を作成するのが1つの解決策です。カピバラのステップは、マウスオーバー機能を名前で呼び出して、同じ結果を得ることができます。

これは、hoverIntent機能のテストを側立って実行するため、最適ではありません。

ご意見ありがとうございます。

答えて

0

hoverIntentを登録するには、ブラウザがhoverIntentの遅延の間スリープする必要があると思います。

関連する問題