Согласно этой статье, кажется, что свойство oncontextmenu поддерживает браузер IE, но атрибут contextmenu работает только в Firefox.
как мне щелкнуть правой кнопкой мыши на указанном c элемент в селене / nide и, если он сломан, как мне вызвать событие с js
Пожалуйста, обратитесь к следующему коду, используйте событие mousedown для обработки события левого / правого щелчка , затем с помощью события нажатия кнопки или непосредственно создайте событие и вызовите функцию mouseDown.
<script type="text/javascript">
function mouseDown(e) {
event.preventDefault();
e = e || window.event;
switch (e.which) {
case 1: leftClick(); break;
case 2: middleClick(); break;
case 3: rightClick(); break;
}
}
function leftClick() {
alert("left click event");
}
function middleClick() {
alert("middle click event");
}
function rightClick() {
alert("right click event");
}
function triggerClick(e) {
//trigger the right click event.
var event = document.createEvent("Event");
event.which = 3;
mouseDown(event);
}
</script>
<body oncontextmenu="return false;">
<a id="btnSubmit" href="#" onmousedown="mouseDown(event);">Click Here</a> <br />
<input type="button" id="btnTriggger" value="Trigger Button" onclick="triggerClick(event);" />
</body>
[Комментарий] Свойство тела oncontextmenu используется для предотвращения контекстного меню браузера.
Снимок экрана как показано ниже:
![enter image description here](https://i.stack.imgur.com/wsklM.gif)
При использовании веб-драйвера selenium на веб-сайте вы можете добавить скрытую кнопку и использовать приведенный выше код для запуска правой событие click из скрытого события click кнопки, затем, найдя скрытую кнопку в веб-драйвере, вы можете вызвать метод click, чтобы вызвать событие щелчка правой кнопкой мыши.
Besid es, вы также можете использовать JavascriptExecutor для выполнения JavaScript через Selenium Webdriver.