有没有人想过如何通过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
这适用于常规鼠标悬停事件,但它不会触发hoverIntent。
一种(一种hackish)解决方案是创建命名函数以传递给hoverIntent以用于mouseover和mouseout行为(而不是像我现在所做的那样的匿名内联函数)。然后,Capybara步骤可以通过名称调用鼠标悬停功能,并获得相同的结果。
但这样做会对hoverIntent功能进行测试,因此它不是最佳选择。
提前感谢任何建议。
答案 0 :(得分:0)
对于要注册的hoverIntent,我认为浏览器需要在hoverIntent延迟期间休眠。