Нажмите на все следующие страницы в цикле до последней страницы с драгоценным камнем Watir

У меня проблема в моем скрипте ruby ​​watir.

Я хочу, чтобы просмотреть все последующие страницы до последней страницы, а затем введите имя и фамилию. Я знаю, что последняя "следующая" ссылка вызывается с еще одним классом "отключен" stop = b.link(class: 'next-pagination page-link disabled'), Я пытаюсь зациклить, пока не будет достигнут этот класс break if stop.exists?

loop do
  link = b.link(class: 'next-pagination page-link') 
  name_array = b.divs(class: 'name-and-badge-container').map { |e| e.div(class:'name-container').link(class: 'name-link profile-link').text.split("\n") }
  puts name_array
  stop = b.link(class: 'next-pagination page-link disabled')
  break if stop.exists?
  link.click
end

У меня есть эта ошибка:

Этот код неактивен в течение времени ожидания по умолчанию, ожидающего существование элемента. Если тест все еще проходит, подумайте об использовании Элемента # существует? вместо спасения UnknownObjectException /Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/elements/element.rb:496:in rescue in wait_for_exists': timed out after 30 seconds, waiting for #<Watir::Div: located: false; {:class=>"name-and-badge-container", :tag_name=>"div", :index=>13}> to be located (Watir::Exception::UnknownObjectException) from /Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/elements/element.rb:486:inwait_for_exists 'из /Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/elements/element.rb:487:in wait_for_exists' from /Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/elements/element.rb:487:inwait_for_exists 'из /Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/elements/element.rb:639:in element_call' from /Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/elements/element.rb:91:inтекст 'из /Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:24:in block (2 levels) in start' from /Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/element_collection.rb:28:inкаждый из '/Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/element_collection.rb:28:in each' from /Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:24:inкарта 'из /Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:24:in block in start' from /Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:22:inloop'из /Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:22:in start' from start.rb:3:in'

Он нажимает на следующую страницу, но не находит следующую отключенную кнопку.

1 ответ

Решение

Используйте текст, чтобы найти этот элемент

b.span(text: 'Suivant').click

Вам не нужно использовать родительскую ссылку, а затем span как b.link(). Span(), вместо этого вы можете напрямую найти span, как я объяснил.

Другие вопросы по тегам