使用Watir获取行的第一个单元格中具有唯一文本的第二个表格单元格的值

时间:2011-05-11 08:12:22

标签: ruby watir firewatir

我想在表的一行的第二个单元格中获取值,其中唯一值在第一个单元格中。第二个单元格的值不断变化。

<table class="mm-table" cellspacing="0" cellpadding="3" border="0">
  <tr class="trhover" onclick="location.href='stock.php?id=RI&p=wtch';">
    <td align="left" rowspan="1" class="tdwidth35per paddingleft4px">
      <a shape="rect" href="stock.php?id=RI&p=wtch"> Reliance </a></td>
    <td align="right" rowspan="1" class="tdwidth35per"> **951.35** </td>
    <td align="right" rowspan="1" class="tdwidth30per"><font color="#008000">0.60</font></td>
</tr>

上面是表格。还有其他具有相同名称的表。我想访问包含文本“951.35”

的第二个单元格

2 个答案:

答案 0 :(得分:2)

看看这是否会导致您想要闪光的细胞

browser.cell(:text, " **951.35** ").parent.cell(:index, 2).flash

或者如果您只知道该单元格中的部分文本,请尝试使用

browser.cell(:text, /951.35/).parent.cell(:index, 2).flash

如果由于某些原因使用.parent无法工作,您也可以尝试匹配整行上的部分文本

browser.row(:text, " **951.35** ").parent.cell(:index, 2).flash

请注意,对于使用零基索引的firewater,我相信您需要将索引值更改为1

另请注意,仅当页面上只有一个单元格具有指定文本时才会起作用,特别是在最后两个使用正则表达式匹配所需文本的示例的情况下。在这种情况下,如果有另一个具有这些数字的单元格,即使它是另一个值的一部分,例如12951.356,Watir也不知道你想要匹配哪一个,并且会给你一个错误。

如果其中任何一个工作闪存你想要的单元格,那么只需用.text替换.flash来获取单元格中的文本值。

答案 1 :(得分:1)

尝试这样的事情:

browser.table(:class => "mm-table").cell(:class => "tdwidth35per")