右键单击守夜人

Right Click with Nightwatch

我正在尝试使用 Nightwatch 测试我的 GUI。我似乎找不到如何模拟右键单击。我浏览了 API 参考页 (http://nightwatchjs.org/api) 并到处搜索。我在这里错过了什么吗?因为我认为右键点击应该是最基本的功能之一。

编辑:这不起作用。不管怎样,我要把它留在这里。它可能会有所帮助。

我找到了解决方法。 mousebuttonDown() 方法允许使用左键、中键和右键单击。它们分别被分配了 0,1 和 2。所以下面以某种方式模拟右键单击:


"Right Click to Show ContextMenu" : function (browser) {
    browser
       .moveToElement(/*locate your element here*/)
       .mouseButtonDown(2)
       .mouseButtonUp(2)
       .end();
}

我对 selenium-webdriver 有同样的问题...

但现在我正在使用 Nightwatch.js 的解决方法:

"Right Click to Show ContextMenu" : function (browser) {
     // inject script in client
     browser.execute(function(selector){
         // dispatch "context menu" event 
         $(selector).trigger('contextmenu');
         return true;
    }, ['#menu'])
    .pause(5000)
    .end();
}

(比照Nightwatch API

Or in pure JS :
document.querySelector('.logo').dispatchEvent(new CustomEvent('contextmenu'));

(cf. Trigger right click using pure Javascript)

并检查您的目标网页:

   $('#menu').on('contextmenu', function () {
      alert('context menu');
      //return false;     // cancel default menu
   });

好消息!!!

自 Nightwatch.js v0.6.13,您可以触发 真正的右键单击 :-)

"Right Click to Show ContextMenu" : function (browser) {
  browser
   .moveToElement('#targetElement')
   .mouseButtonClick('right')
   .pause(5000)
   .end();
}