我是Ruby的新手,仍然处于初学者阶段并努力实现这一目标。任何有关这方面的帮助将不胜感激。 我使用nokogiri解析此表,找到选择的活动匹配,然后单击匹配行的另一列上的详细信息链接
<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">$8.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">$8.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>
我试过这个,它找到了匹配,但总是点击第一个详细信息链接(我明白我不是在迭代并找到正确的行和列来点击它,但我不知道该怎么做)
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
答案 0 :(得分:0)
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