我正在尝试使用FF Selenium IDE插件测试页面。
有如下菜单结构..
<ul class="parent">
<li class="child"><span><a href="something.html">link text</a></span></li>
<li class="child"><span><a href="somethingelse.html">other text</a></span></li>
<ul>
li元素有一个绑定到它们的悬停事件。这些悬停事件在实际链接标记上注册了一个click事件。 (我已经删除了一些JavaScript以简化)
var menu = $('ul.parent');
$("> li.child", menu).hover(function () {
$(this).find('> a').click(function () {
$(this).parent().addClass('active-trail');
return false;
});
}, function() {});
如果使用Selenium,我单击其中一个链接,然后我希望调用该处理程序。它不是,只是简单地执行了点击(然后是链接,而不是返回false)。
我已经尝试过(在阅读其他答案之后)mouseUp和mouseDown。我还尝试使用fireEvent首先将鼠标悬停在li上(以激活悬停事件),然后使用另一个fireEvent来单击锚点..但这也无效。
所以任何帮助都会非常感激。只是使用Selenium触发jquery提供的点击处理程序的基本演示可能足以让我看到对了!
谢谢, 帕特里克。
答案 0 :(得分:2)
fireEvent()
你是对的,你确定你使用它了吗?
如果您要解雇onClick
处理程序,则执行fireEvent(locator, "click")
而不是fireEvent(locator, "onClick")
。
如果您使用selenium IDE生成脚本,则可能正确执行此操作。
硒在这方面有点眩晕,我有很多类似的问题。
答案 1 :(得分:1)
您是否尝试过使用xpath,即
selenium.Click( “的xpath = /后代::的Li [含有(,。” 东西 “)] [2] / X:A”)