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

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

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

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

恢复:

如何右键单击 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 属性用于阻止浏览器上下文菜单。

截图如下:

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

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


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!