I am trying to test my GUI with Nightwatch. I can not seem to find how to simulate a right click. I went through the API Reference page() and searched everywhere. Am I missing something here? Because I believe that right clicking should be one of the most basic functionalities.
I am trying to test my GUI with Nightwatch. I can not seem to find how to simulate a right click. I went through the API Reference page(http://nightwatchjs/api) and searched everywhere. Am I missing something here? Because I believe that right clicking should be one of the most basic functionalities.
Share Improve this question asked Mar 12, 2015 at 13:45 lamyaruslamyarus 1662 silver badges11 bronze badges3 Answers
Reset to default 6Good news !!!
Since Nightwatch.js v0.6.13, you can fire a real right click :-)
"Right Click to Show ContextMenu" : function (browser) {
browser
.moveToElement('#targetElement')
.mouseButtonClick('right')
.pause(5000)
.end();
}
EDIT: This DOESN'T WORK. I am going to leave it here anyways. It might be helpful somehow.
I found a work around. mousebuttonDown() method allows the use of left, middle and right clicks. They are assigned 0,1 and 2 respectively. So the following somehow simulates a rightclick:
"Right Click to Show ContextMenu" : function (browser) {
browser
.moveToElement(/*locate your element here*/)
.mouseButtonDown(2)
.mouseButtonUp(2)
.end();
}
I have the same issue with selenium-webdriver ...
But right now i'm using that workaround for 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();
}
(cf. Nightwatch API)
Or in pure JS :
document.querySelector('.logo').dispatchEvent(new CustomEvent('contextmenu'));(cf. Trigger right click using pure Javascript)
And check your target webpage :
$('#menu').on('contextmenu', function () {
alert('context menu');
//return false; // cancel default menu
});