#ruby-on-rails #rspec #webkit #cucumber #capybara
#ruby-on-rails #rspec #webkit #огурец #capybara
Вопрос:
Драйвер Capybara webkit неправильно видит мой css. Он видит (отображает), что моя кнопка перекрывает другую кнопку, в то время как у драйвера selenium проблем нет.
Могу ли я в любом случае щелкнуть по нему? может быть, выполнить скрипт или что-то в этом роде?
Ответ №1:
С помощью Capybara вы можете запускать события щелчка вместо прямого щелчка по элементу следующим образом:
page.find("#some_element").trigger("click")
Проблема в том, что это не работает в Selenium. Итак, что вы можете сделать, это условно выполнить стандартный capybara click
или trigger("click")
основанный на текущем драйвере javascript, который будет выглядеть примерно так:
if Capybara.javascript_driver == :selenium
page.find("#some_element").click
else
page.find("#some_element").trigger("click")
end
Очевидно, что это не идеально, но это лучший способ, который я нашел для решения подобных ситуаций.
Комментарии:
1. Прямо на месте. Драйвер WebKit очень плохо обрабатывает выпадающие меню, и единственный способ обойти это — пройти
trigger
.