Watir / Ruby选择下一个值

时间:2016-03-14 17:26:49

标签: html ruby nokogiri watir

我正在使用第一列中包含链接的表:

html = Nokogiri::HTML(browser.html)

html.css('tr td a').each do |links|
  browser.link(:text=>"#{a}").click
  puts "#{a}"
end

如何显示链接的NEXT值? 如果链接名称是abcd但是下一个名字是efgh,我如何让它写出efgh?

2 个答案:

答案 0 :(得分:0)

您应该能够使用您正在使用的数组中的索引来实现此目的。

thing = ['a', 'b', 'c', 'd']

(0..thing.length - 1).each do |index| 
  puts thing[index + 1]
end

答案 1 :(得分:0)

我不明白这里的用例(根本不是这样),但这个人为的例子可能会指出你想要去的方向。

使用links方法创建link个对象的数组。然后,您可以在第二个位置打印元素的text,但单击第一个位置的元素。

require 'watir-webdriver'
b = Watir::Browser.new 
b.goto('http://www.iana.org/domains/reserved')

nav_links = b.div(:class => "navigation").links   

puts nav_links[1].text   #=> NUMBERS
nav_links[0].click
puts b.url               #=> http://www.iana.org/domains

Enumerable::each_with_index方法也可能有用,因为它循环遍历数组的每个元素,并另外返回相应的元素位置。例如:

b.div(:class => "navigation").links.each_with_index { |el, i| puts el.text, i }

#=> DOMAINS
#=> 0
#=> NUMBERS
#=> 1
#=> PROTOCOLS
#=> 2
...