Selenium IDE - 未触发JQuery onclick处理程序

时间:2011-04-14 05:20:07

标签: javascript jquery selenium

我正在尝试使用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提供的点击处理程序的基本演示可能足以让我看到对了!

谢谢, 帕特里克。

2 个答案:

答案 0 :(得分:2)

fireEvent()你是对的,你确定你使用它了吗?

如果您要解雇onClick处理程序,则执行fireEvent(locator, "click")而不是fireEvent(locator, "onClick")

如果您使用selenium IDE生成脚本,则可能正确执行此操作。

硒在这方面有点眩晕,我有很多类似的问题。

答案 1 :(得分:1)

您是否尝试过使用xpath,即

selenium.Click( “的xpath = /后代::的Li [含有(,。” 东西 “)] [2] / X:A”)