以下代码不起作用:
browser.link(:id => "tab_buy").fire_event ("onmouseover")
这段代码效果很好:
browser.link(:id => "tab_buy").click
效果很好。
IE和Firefox都是如此。如果有任何解决方法,请告诉我。
答案 0 :(得分:0)
我最后一次检查.fire_event(“onmouseover”)至少在Firefox中没有实现(watir-webdriver)(这是几个月前的事情)。
我目前解决这个问题的方法是使用以下方法:
在我所有测试中包含的文件中:
class Watir::Element
def hover
assert_exists
driver.action.move_to(@element).perform
end
end
这为每个元素提供了一个悬停方法,使用方法如下:
browser.div(:id => "someId").hover
这就是我到目前为止处理悬停事件的方式。这是由Jari Bakken在测试期间遇到与.fire_event("onmouseover")
类似的问题时提出(提供)的。
我不确定这是否适用于IE,因为我们这里只使用Firefox。
答案 1 :(得分:0)
请记住,点击某些内容的行为有可能引发许多不同的事件,包括
这个问题和答案可能有用:How to find out which JavaScript events fired?作为一种方法来了解当你执行某些过程时会触发什么事件,例如将鼠标移到某个对象上并点击它。
如果你的目标是点击链接,那么使用.click通常是实现这一目标的最直接,最简单的方法。另一方面,如果您正在进行基于Javascript或CSS的操作(常见于强大的自定义控件,模拟下拉菜单等),那么您可能需要触发事件才能发生事情,例如鼠标移动时出现的菜单在下拉菜单中的顶部项目。 (这也可能很棘手,因为CSS对'hover'动作定义的'伪类'的反应方式与基于事件的javascript工作方式不同。
为了真正给你更多的基本信息,并提供一个具体的答案,你将不得不分享更多关于正在发生的事情,你想要发生什么,发生了什么等等,因为正确现在要让我们中的任何一个人了解你的挑战是什么,以及你目前如何试图克服它,需要花时间阅读。