Селен - наведение мыши без появления реальной мыши - PullRequest
1 голос
/ 31 января 2020

У меня есть элемент, над которым я хочу выполнить наведение мыши, чтобы сделать видимым другой элемент.

Я попытался с этим: new Actions(driver).moveToElement(webElem).perform();

Но если я наведу курсор мыши на браузер, это наведение мыши будет Остановился, и элемент, который я хочу видеть, исчез.

Как я могу выполнить наведение мыши без получения мышью?

Вот пример html для тестирования:

<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>

1 Ответ

2 голосов
/ 31 января 2020

Попробуйте с java scripts executor. Надеюсь, это поможет.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...