наведение мыши не работает в сафари, веб-драйвер селена

Я использовал действия для наведения мыши в FF и chrome, все работает нормально. Но тот же код не работает в сафари. Я использую Mac OS и Selenium WebDriver и java.

Я пробовал код ниже.

 new Actions(driver).moveToElement(element).build().perform();

JS:

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 js = (JavascriptExecutor) driver;
                    js.executeScript(mouseOverScript, element);

Это проблема остановки шоу. любая помощь приветствуется.


person babu arigs    schedule 30.10.2014    source источник
comment
Вы проверили, совместим ли селен с версией Safari, которую вы тестируете?   -  person Yu Zhang    schedule 30.10.2014
comment
@YuZhang, да, это совместимо.   -  person babu arigs    schedule 30.10.2014


Ответы (1)


Для выполнения наведения мыши требуется использование расширенного API взаимодействия с пользователем WebDriver. В привязках языка Java это достигается классом Actions. К сожалению, в настоящее время SafariDriver не реализует Advanced User Interactions API, поэтому вы не можете сделать это напрямую. Пока он не реализован, вы, вероятно, могли бы имитировать его с помощью JavaScript, чтобы запускать события, запускаемые моим наведением мыши.

person JimEvans    schedule 01.11.2014
comment
Спасибо за ваш ответ. Java-скрипт, о котором я упоминал выше, отлично работает в одном сценарии, а не в другом. это странно. можете ли вы поделиться, если у вас есть фрагмент кода java-скрипта? ценю вашу помощь. - person babu arigs; 02.11.2014
comment
Учитывая, что уже больше года люди из Selenium не поддерживают драйвер Safari, возможно, это не от них ... вздох. - person uchuugaka; 23.04.2016
comment
Март 18 года, до сих пор нет прогресса. :( - person SiKing; 03.03.2018
comment
@SiKing, учитывая, что проект Selenium больше не поддерживает драйвер Safari, я не уверен, что это законная жалоба на проект. Apple, однако, действительно предоставляет драйвер для Safari, и предоставляет его уже некоторое время. Если этот драйвер не реализует API действий, вряд ли это вина проекта Selenium. - person JimEvans; 03.03.2018
comment
@ Джим Эванс Согласен. Думаю, мой комментарий должен был быть более ясным: 18 марта, и до сих пор нет прогресса со стороны текущего сопровождающего, Apple. - person SiKing; 05.03.2018
comment
Просто любопытно, что могло бы использовать JavaScript для запуска событий, запускающих мое наведение мыши. выглядит как? Что входит в browser.execute() для этого? - person kyoob; 09.11.2018