gpt4 book ai didi

javascript - 在 java 中处理 IE 的 selenium/nide 中的右键单击

转载 作者:行者123 更新时间:2023-12-02 08:58:51 28 4
gpt4 key购买 nike

我试图在打开自定义菜单时右键单击特定元素,但 IE 不执行右键单击。 (它适用于 Firefox)IE 也禁用 native 事件

(使用 Selenium 化物:elem.contextClick();)

我假设要么我做错了什么,要么 Action 被破坏,在这种情况下我需要绕过它,我尝试调用一些js代码:executeJavaScript("document.querySelector('cssSelector').???()");

在我的例子中,这是与此元素关联的事件,如 firefox html 检查器中所示(无法显示代码,对此感到抱歉)

enter image description here

恢复:

如何右键单击 selenium/nide 中的特定元素,如果它损坏,如何使用 js 调用该事件

最佳答案

根据这篇文章,oncontextmenu属性似乎支持IE浏览器,但contextmenu属性仅在Firefox中有效。

how do i right click on a specific element in selenium/nide and if it is broken, how do i call the event with 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

当使用selenium webdriver时,在网站上,您可以添加一个隐藏按钮,并使用上面的代码从隐藏按钮的单击事件中触发右键单击事件,然后,在从webdriver中找到隐藏按钮后,您可以可以调用click方法触发右键事件。

此外,您还可以使用 JavascriptExecutor通过 Selenium Webdriver 执行 JavaScript。

关于javascript - 在 java 中处理 IE 的 selenium/nide 中的右键单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60325285/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com