以下面的 html 为例。这是我为了练习而制作的草稿纸,但它有我正在尝试使用的真实 html 的片段。
http://www.carbide-red.com/prog/test_table.html
我试图找到一列,我能找到的唯一一致的标识符是背景颜色(bgcolor)。
<tr bgcolor="#ffffcc">
<td bgcolor="yellow" class="date" align=center>Equipment</td>
<td bgcolor="#ccccff" align=center class="date"><font color=black>8/12/12</font></td>
<td bgcolor="#ccccff" align=center class="date"><font color=black>8/19/12</font></td>
<td bgcolor="#ccccff" align=center class="date"><font color=black>8/26/12</font></td>
<td bgcolor="#ccccff" align=center class="date"><font color=black>9/2/12</font></td>
<td bgcolor="red" align=center class="date"><font color=yellow>9/9/12</font></td>
<td bgcolor="#ccffcc" align=center class="date"><font color=black>9/16/12</font></td>
<td bgcolor="#ccffcc" align=center class="date"><font color=black>9/23/12</font></td>
<td bgcolor="#ccffcc" align=center class="date"><font color=black>9/30/12</font></td>
<td bgcolor="#ccffcc" align=center class="date"><font color=black>10/7/12</font></td>
</tr>
我正在尝试查找 <td>
其中 bgcolor=red。然后我想保存该单元格的列索引,以便我可以使用它来选择以下行的同一列。
但我似乎找不到搜索 bgcolor=
的方法标签。我还没有找到一种方法让 Watir 报告列/行索引以存储在变量中。但如果我能找到bgcolor=
标签,然后我可以搜索“设备”之类的内容,然后计数,直到找到正确的标签。
我知道 html 代码并不理想,因为有任何“名称”或任何唯一标识符的注释,但我无法更改它。
我对 Ruby 和 Watir 很陌生。我尝试用 Perl 操作一个网站,但进展不太顺利,我发现了 Watir,它完全满足了我的需要(而且非常简单),但现在我正在尝试理解 Ruby 以及更精细的语义。
感谢您的帮助!
最佳答案
获取 <td bgcolor="red">
的文本试试这个:
browser.element(:css => "td[bgcolor=red]").text
你应该回来"9/9/12"
。要单击该元素,请替换 text
与 click
.
将其索引放入变量index
中试试这个:
index = nil
browser.tds.each_with_index {|td, i| index = i if td.attribute_value("bgcolor") == "red" or td.attribute_value("bgcolor") == "#ff0000"}
index
变量应该是 5
.
关于ruby - Watir:通过 bgcolor 标签搜索表格单元格并获取列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12344841/