我正在尝试使用 ruby、watir 和正则表达式从 HTML 表(如下)中解析一个值。如果表行具有指定值,我想从锚标记解析 id 信息。例如,如果 Event1、Action2 是我的目标行选择,那么我的目标是获取表格行的“edit_#”。
Table:
Event1 | Action2
Event2 | Action3
Event3 | Action4
HTML 示例(我已经删除了一些信息,因为这是工作代码,希望你明白):
<div id="table1">
<table class="table1" cellspacing="0">
<tbody>
<tr>
<tr class="normal">
<td>Event1</td>
<td>Action2</td>
<td>
<a id="edit_3162" blah blah blah… >
</a>
</td>
</tr>
<tr class="alt">
<td> Event2</td>
<td>Action3 </td>
<td>
<a id="edit_3163" " blah blah blah…>
</a>
</td>
</tr>
</tbody>
</table>
</div>
我尝试了以下不起作用的方法:
wb=Watir::Browser.new
wb.goto "myURLtoSomepage"
event = "Event1"
action = "Action2"
table = browser.div(:id, "table1")
policy_row = table.trs(:text, /#{event}#{action/)
puts policy_row
policy_id = policy_row.html.match(/edit_(\d*)/)[1]
puts policy_id
这会导致指向 policy_id = ... 行的错误:undefined method 'html' for #<Watir::TableRowCollection:0x000000029478f0> (NoMethodError)
感谢任何帮助,因为我对 ruby 和 watir 还很陌生。