2011-12-27 117 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延迟的时间。