Ruby 单击所有不同的下一页进入循环,直到最后一页有Watir gem

Ruby 单击所有不同的下一页进入循环,直到最后一页有Watir gem,ruby,watir,ruby-watir,Ruby,Watir,Ruby Watir,我的ruby watir脚本有问题 我想点击所有下一页直到最后一页,然后输入一些名字和姓氏。我知道调用最后一个“下一个”链接时,又有一个类“disabled”stop=b.link(类:“下一个分页页面链接已禁用”)。 我尝试循环,直到到达该类如果停止,则中断。存在? loop do link = b.link(class: 'next-pagination page-link') name_array = b.divs(class: 'name-and-badge-container

我的ruby watir脚本有问题

我想点击所有下一页直到最后一页,然后输入一些名字和姓氏。我知道调用最后一个“下一个”链接时,又有一个类“disabled”
stop=b.link(类:“下一个分页页面链接已禁用”)
。 我尝试循环,直到到达该类
如果停止,则中断。存在?

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
我有一个错误:

此代码在等待元素存在的默认超时期间处于休眠状态。如果测试仍在通过,考虑元素元素存在吗?而不是拯救未知的异常 /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_exists:30秒后超时,等待找到#“name and badge container”,:tag##name=>“div”,:index=>13}>(watir::Exception::UnknownObjectException::UnknownObjectException)
来自/Users/vincentcheloudiakoff/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/watir-6.2.1/lib/watir/elements/element.rb:486:in
等待\u存在' 来自/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
等待\u存在'
来自/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
等待\u存在' from/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\u 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
text' from/Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:24:in
block(2级)中的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
each' 来自/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
map' from/Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:24:in
block in start'
from/Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:22:in
loop' from/Users/vincentcheloudiakoff/Travail/Automation/lib/linkedin.rb:22:in
start'
from start.rb:3:in
'


它单击下一页,但找不到下一个禁用按钮。

使用文本定位该元素

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

您不必使用父链接,然后像b.link().span()那样使用span。相反,您可以按照我解释的方式直接定位span。

您可以提供html部分吗,我可能会找到更好的方法来定位那个链接。代码中的问题是,它没有定位该元素。是的,html部分是:Suivant这是最后一个“下一个”链接的html部分为什么不使用文本定位该元素?这会管用的。谢谢你,真管用!我只是像这样定位span元素
stop=b.link(class:'next pagination page link disabled')。span(class:'pagination text')
Hi,这不是我说的方式,我说的是直接使用文本定位。我已经更新了下面的答案,你可以看看。