微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Selenium IDE-未触发JQuery onclick处理程序

| 我正在尝试使用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提供的单击处理程序的基本演示就足以使我明白! 谢谢, 帕特里克     

解决方法

您对
fireEvent()
的理解是正确的,确定使用对吗? 如果要解雇
onClick
处理程序,则应执行
fireEvent(locator,\"click\")
而不是
fireEvent(locator,\"onClick\")
。 如果您正在使用Selenium IDE生成脚本,那么您可能做对了。 硒在这个领域有点躲闪,我也有很多类似的问题。     ,您是否尝试过使用xpath即 selenium.Click(\“ xpath = / descendant :: li [contains(。,\” something \“)] [2] / x:a \”)     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。