Драйвер Capybara webkit обнаружил перекрывающийся элемент, как я могу щелкнуть по одному из них?

#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 .