【问题标题】:How to right click in selenium webdriver in java script?如何在javascript中右键单击selenium webdriver?
【发布时间】:2016-05-25 11:57:13
【问题描述】:

我有问题。我找不到任何方法让我在测试中模拟右键单击。我正在使用 selenium webdriver,并且有很多说明,但适用于 java。我正在用java脚本编写测试。有人知道更多吗?

【问题讨论】:

  • 我假设您想与系统上下文菜单进行交互,而不是您自己实现的?此外,您必须提及您尝试过的内容、未显示现有代码的问题、预期行为与实际行为,对其他人没有那么有用
  • 好的。所以首先它不是重复的,因为我正在寻找javascript而不是java的东西。有不同的方法和功能,它们不起作用。我只是找不到我应该使用的方法或东西。没有要显示的代码,因为我刚刚测试了登录,现在我想右键单击讲坛/背景/任何应用程序
  • 重复问题。在发布新问题之前参考旧问题。
  • 认真的吗?我检查了。并尝试那些在 javascript 中但它不起作用的。 Webdriver 无法识别任何这些方法。因此,如果您无法帮助或理解 java 和 javascript 中的代码不一样,请不要打扰。或者对你来说,在 javascript 上翻译 java 很容易,那么你仍然应该提供帮助,因为对我来说这个链接没用
  • 已重新打开,因此有人可以尝试将 this answer 上的 Java 翻译成 JavaScript。我试过了,但找不到contextClick 操作

标签: javascript selenium testing selenium-webdriver right-click


【解决方案1】:

要在 JavaScript 中模拟右键单击,请查看 JavaScript simulate right click through code

function contextMenuClick(element){
    var evt = element.ownerDocument.createEvent('MouseEvents');

    var RIGHT_CLICK_BUTTON_CODE = 2; // the same for FF and IE

    evt.initMouseEvent('contextmenu', true, true,
         element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
         false, false, false, RIGHT_CLICK_BUTTON_CODE, null);

    if (document.createEventObject){
        // dispatch for IE
       return element.fireEvent('onclick', evt)
     }
    else{
       // dispatch for firefox + others
      return !element.dispatchEvent(evt);
    }
}

【讨论】:

  • 请不要只链接到答案。将问题作为重复项关闭或提供链接作为评论。至少,在答案中提供一些代码。
  • @rajNishKuMar 感谢您的尝试,但仍然不是我想要的
  • @jabussko 你能解释一下你在找什么吗?此处的链接答案解释了如何按照您的要求使用 JavaScript 显示上下文菜单。 “这仍然不是我想要的”没有彻底的解释是一个糟糕的评论。该代码应该可以工作。
  • 也就是说,您应该能够运行 browser.executeScript() 并将上面的 JavaScript 传递给它
  • @JuanMendes 但我不想创建上下文菜单,只需右键单击网站。我试过这个方法,selenium 根本无法识别 initMouseEvent
猜你喜欢
  • 1970-01-01
  • 2012-01-14
  • 2012-07-20
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多