我希望提取 html table,匹配一个列值,然后单击 Ruby Automation 中相应匹配行上的另一列 link

I am looking to extract html table, match one column value and then click on another column link on the corresponding matched row in Ruby Automation

我是 Ruby 的新手,仍处于初学者阶段,正在努力实现这一目标。对此的任何帮助将不胜感激。 我正在使用 nokogiri 解析此 table,找到 select activity 匹配项,然后单击匹配行

的另一列上的详细信息 link
<tbody>
 <tr class="GridRowOdd">
  <td align="centre" title="Select Activity">
    <a class="gridLink" title="Select Activity"
     href="https://something/something.context=Level-1&selectedRow=1">payment</a>
  <td>
  <td align-"centre">02/21/2018</td>
  <td align-"centre">.47</td>
  <td align-"centre" title="Details">
    <a class="gridLink" title="Details"
     href="https://...something/something.context=Level-
      1&selectedRow=1">Details</a>
  </td>
</tr>
<tr class="GridRowEven">
  <td align="centre" title="Select Activity">
    <a class="gridLink" title="Select Activity"
     href="https://something/something.context=Level-1&selectedRow=2">Loan Activity</a>
  <td>
  <td align-"centre">02/21/2018</td>
  <td align-"centre">.47</td>
  <td align-"centre" title="Details">
    <a class="gridLink" title="Details"
     href="https://...something/something.context=Level-
      1&selectedRow=2">Details</a>
  </td>
</tr>

我试过了,它找到了匹配项,但总是点击第一个详细信息 link(我知道我没有迭代并找到正确的行和列来点击它,但我不是确定该怎么做)

require ópen-uri'
require 'nokogiri'
link(:details_link, :title => "Details")
doc = Nokogiri::HTML(open(html)
table = doc.xpath('//table//tbody//tr[3]//td[2]//table//tbody//tr[2]//td//'
if table.include? "Loan Activity"
self.details_link
end
require 'watir'

b = Watir::Browser.new

b.goto 'paste your URL here'

#I assume only one table appear so I used the below xpath

b.table(xpath: '//table').rows.each do |row|
  if row.cell(text: 'Loan Activity').exists?
    row.cell(text: 'Details').click
  end
end

你可以像这样用 css 得到它:

url = table.at('td:has(a:contains("Loan Activity")) ~ td[title=Details] a')[:href]

~ fyi 匹配以下兄弟姐妹