Как навести курсор мыши на элемент Selenium Ruby? - PullRequest
6 голосов
/ 01 сентября 2011

Кто-нибудь знает, как навести курсор на элемент в Selenium Ruby Webdriver?

Мой код выглядит следующим образом:

el = driver.find_element(:css => "#foo")
driver.move_to el # How do I trigger a mouseover event on this element?

Я использую гем Selen-Webdriver с Firefox в Linux 32-битовый.

Ответы [ 5 ]

5 голосов
/ 22 мая 2013

Я использовал driver.action.move_to(el).perform, который немного отличается от других ответов, поэтому я подумал, что я бы включил его для полноты картины.

4 голосов
/ 03 сентября 2011

Оказывается, ответ:

driver.move_to(el).perform

Я забыл .perform.

3 голосов
/ 20 сентября 2011

Это работает для меня:

driver.mouse.move_to el
1 голос
/ 11 октября 2016

Для наведения элемента:

driver.action.move_to(element).perform
# e.g.    
driver.action.move_to(driver.find_element(css: 'a')).perform

Для наведения элемента в определенном месте:

driver.action.move_to(element, mouse_x, mouse_y).perform
# e.g.    
driver.action.move_to(driver.find_element(css: 'a'), 100, 100).perform
1 голос
/ 18 мая 2014

Вам нужно использовать Построитель действий Selenium для доступа к более сложным действиям, таким как зависание (именно это демонстрирует ответ seanny123).

Кроме того, если вы работаете с парением, скорее всего, вам нужно будет динамически ожидать его отображения, прежде чем предпринимать следующее действие (например, с использованием явного ожидания).

Я собрал пример того, как это сделать - вы можете увидеть полное описание здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...