Невозможно найти класс внутри класса capybara

#selenium #ruby-on-rails-4 #rspec #capybara #chrome-web-driver

#selenium #ruby-on-rails-4 #rspec #capybara #chrome-веб-драйвер

Вопрос:

Мой html-код :

 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">amp;times;</span><span class="sr-only">Close</span></button>
 

Я пытался:

 1. find(:xpath, "//span[@class='sr-only']").click


2. page.find('.sr-only',visible: false).click
 

но не смог найти элемент ‘только для sr’. Как его найти?

Исключение, которое я получил, это:

 Selenium::WebDriver::Error::ElementNotVisibleError:
   element not visible
 

Обратите внимание на использование chrome webdriver selenium

Комментарии:

1. Может ли поделиться, если возникло какое-либо исключение??

2. Попробуйте as page.find('.close',visible: false).click и дайте мне знать

Ответ №1:

По умолчанию Capybara не находит невидимые элементы (как обычно бывает с классом «только sr»), и даже когда вы укажете ему найти невидимые элементы (с помощью опции visible: false (или : hidden /:all)), вы не сможете щелкнутьв элементе, потому что пользователь не сможет щелкнуть по невидимой опции. Похоже, вы хотите нажать кнопку закрытия, поэтому, если вы используете Capybara 2.10 , вы должны быть в состоянии сделать

 click_button(class: 'close')
 

при использовании более старой Capybara вы должны быть в состоянии сделать

 find('button.close').click
 

Комментарии:

1. Это устранило мою проблему. Однако есть ли список изменений для 2.10?

2. github.com/teamcapybara/capybara/blob/master/History.md — может быть 2.9 опция класса была добавлена в