Кто-нибудь выяснил, как вызвать событие 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, поэтому он не является оптимальным.
Заранее спасибо за любые предложения.