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

pat*_*vey 5 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>
Run Code Online (Sandbox Code Playgroud)

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() {});
Run Code Online (Sandbox Code Playgroud)

如果使用Selenium我单击其中一个链接然后我希望调用该处理程序.它不是,只是简单地执行了点击(然后是链接,而不是返回false).

我尝试过(在阅读其他答案之后)mouseUp和mouseDown.我还尝试使用fireEvent首先将鼠标悬停在li上(以激活悬停事件),然后使用另一个fireEvent来单击锚点..但这也无效.

所以任何帮助都将是最受欢迎的.只是使用Selenium触发jquery提供的点击处理程序的基本演示可能足以让我看到正确的!

谢谢,帕特里克.

Tne*_*nem 2

你说得对fireEvent(),你确定你用对了吗?

如果您想解雇处理程序,您就不onClick会这样做。fireEvent(locator, "click")fireEvent(locator, "onClick")

如果您使用 selenium IDE 生成脚本,那么您的做法可能是正确的。

Selenium 在这方面有点棘手,我遇到过很多类似的问题。