all
возвращает массив, похожий на объект Capybara :: Result. Вы можете повторить это, используя стандартные перечисляемые методы ruby.
all("button[data-control-name='srp_profile_actions']").each do |el|
el.click
find("section[class=modal]") # Not sure what this is for - if it's an expectation/assertion it should be written as such
click_button(class: %w(button-primary-large ml1)
end
Это будет работать до тех пор, пока нажатие кнопки не заставит браузер перейти на другую страницу.
Если при щелчке браузер переместится на другую страницу, все остальные элементы в объекте Capybara :: Result станут устаревшими (что приведет к ошибке ссылки на устаревший элемент на следующей итерации), и вы не будете возможность повторять больше. Если это ваш случай, вам понадобятся подробности о том, что именно вы делаете. Такие вопросы, как оригинальная кнопка все еще существует на странице после нажатия кнопки button-primary-large
, или вы можете повторять, просто нажимая первую соответствующую кнопку снова и снова? Если он все еще существует, он изменяется каким-либо образом, чтобы указать, что на него уже нажали, или число / порядок кнопок на странице гарантированно будет стабильным? Вероятно, это поможет понять, если вы разместите фрагмент HTML-кода для первой и второй итерации.