0

Я хочу, чтобы проверить мой веб-приложение с помощью селена WebDriver, и я не могу mousemove события вызывается с movementX или movementY, кроме 0.Селена WebDriver имитировать MouseMove события с movementX и movementY, отличной от нуля

Я попытался с помощью Class: Selenium::WebDriver::ActionBuilder:

driver.action.move_to(element).move_by(1,1).perform() 

И Javascript взламывает как this.

Есть ли другой способ вызвать/вызывать MouseEvent типа mousemove с учетом того, что movementX и movementY важен?

ответ

0

Selenium-webdrivers #move_to принимает правое и нижнее смещения для элемента, к которому вы переезжаете. При использовании водосвинки с селеном WebDriver, если вы нашли элемент, который вы хотите переместить мышь, вы должны быть в состоянии сделать

page.driver.browser.action.move_to(element.native, 1, 1).perform 

Примечания: это будет работать только с драйвером селена, а не с Полтергейст,

+0

К сожалению, это не работает. Я просмотрел его описание, и он говорит: _Может мышь посередине данного элемента. Элемент прокручивается в поле зрения, и его местоположение вычисляется с использованием метода getBoundingClientRect. Затем мышь перемещается в необязательные координаты смещения от элемента. Теоретически он должен работать, но, по-видимому, логика во всех случаях одинакова, она просто искажает виртуальную мышь в правильном положении. – Zaimatsu

+0

@ Zaimatsu Ah - да, это просто деформация - нет событий движения, созданных на этом пути. Спецификация w3c webdriver для действий указателя в настоящее время завершается - https://www.w3.org/TR/webdriver/#pointer-actions - и драйверы начинают реализовывать спецификацию, чтобы это со временем менялось, но на данный момент вы не получите эти события с любым драйвером. –