Watir Webdriver fire_event onmouseover больше не работает - PullRequest
1 голос
/ 09 марта 2012

Я использую Watir для автоматизации тестирования основного веб-приложения моей компании.Тесты требуют, чтобы раскрывающееся меню javascript вызывалось при наведении курсора мыши, и чтобы была нажата ссылка в этом меню.

$browser.link(:id=> 'element').fire_event "onemouseover"

Работала идеально, пока мы не изменили внешний вид приложения.Изменения, внесенные во внешний вид, никак не повлияли на внешний вид HTML и работу меню.Все остальное работает нормально с Watir.

Я пытался использовать решение, которое, казалось, работает для других, включая:

 class Watir::Element
  def hover
   assert_exists
   driver.action.move_to(@element).perform
  end
 end

и использование

  browser.div(:id => "someId").hover

Но когда меню появляются, они мгновенно исчезают, прежде чем водитель сможет щелкнуть по пункту меню.

Ответы [ 2 ]

3 голосов
/ 05 июня 2013

browser.div (: id => "someId"). Hover

сон 3

Решит проблему. Я столкнулся с той же проблемой, и сон решил ее:)

1 голос
/ 10 марта 2012

Мне удалось обойти это (при условии, что сайт использует jquery), используя execute_script для запуска некоторых jquery, чтобы переопределить видимость «скрытых» меню.См. Этот ответ https://stackoverflow.com/a/8392467/409820 для получения дополнительной информации

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

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

...