Selenium - mouseover without occurrence of real mouse

KunLun :

I have an element over I want to perform mouseover to do another element visible.

I tried with this: new Actions(driver).moveToElement(webElem).perform();

But if I move mouse over browser, that mouseover is stopped and the element I want to be visible, disappear.

How I can perform an mouseover without get occurred by mouse?

Here is an sample of html for testing:

<html>
    <head>
    </head>
    <body>

        <div id="demo" onmouseover="mouseOver()" onmouseout="mouseOut()">Mouse over here</div>

        <script>

            var node = document.createElement("div");
            node.innerHTML = "mouse over active";

            function mouseOver() {
              document.body.appendChild(node);
            }

            function mouseOut() {
              document.body.removeChild(node);
            }

        </script>

    </body>
</html>
KunduK :

Try with java scripts executor.Hope this will help.

WebElement element=new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.id("demo")));
String mouseOverScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover',true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}";
((JavascriptExecutor) driver).executeScript(mouseOverScript,element);

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=421966&siteId=1