Запуск hoverIntent в тесте Capybara / Selenium - PullRequest
4 голосов
/ 28 декабря 2011

Кто-нибудь выяснил, как вызвать событие hoverIntent через Capybara?

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

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

К сожалению, добавление hoverIntent сломало несколько тестов Cucumber-Capybara-Selenium.Тесты заставляли кнопки появляться с шагом, подобным этому (упрощенно):

And /^I hover on the table cell with ID "(.*)"$/ do |cell_id|
  selector = "td#" + cell_id
  js = %Q{ (function() { jQuery("#{ selector }").mouseover(); })() }
  page.evaluate_script js
end

Это работало хорошо для обычного события наведения мыши, но не вызывает hoverIntent.

One(вроде как хакерским) решением было бы создание именованных функций для передачи в hoverIntent для поведения mouseover и mouseout (вместо анонимных встроенных функций, как я делаю сейчас).Шаг Capybara может затем вызвать функцию наведения мыши по имени и получить тот же результат.

Однако это приведет к обходу тестирования функциональности hoverIntent, поэтому он не является оптимальным.

Заранее спасибо за любые предложения.

1 Ответ

0 голосов
/ 29 декабря 2014

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

...