有人知道如何通过 Capybara 触发 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 以实现鼠标悬停和鼠标移出行为(而不是像我现在所做的匿名内联函数)。Capybara 步骤然后可以按名称调用 mouseover 函数,并获得相同的结果。
但是,这会避开对 hoverIntent 功能的测试,因此它不是最佳的。
在此先感谢您的任何建议。