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機能のテストを側立って実行するため、最適ではありません。
ご意見ありがとうございます。