Получить значение второй ячейки таблицы с уникальным текстом в первой ячейке строки с помощью Watir - PullRequest
2 голосов
/ 11 мая 2011

Я хочу получить значение во второй ячейке строки таблицы, где уникальное значение находится в первой ячейке. Значение второй ячейки постоянно меняется.

<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 ]

2 голосов
/ 11 мая 2011

Посмотрите, вызывает ли это ячейку, которую вы хотите мигать

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

Обратите внимание, что в случае пожарной воды, в которой используется индексация с нуля, я считаю, что вам необходимо изменить значение индекса на 1

Также обратите внимание, что это будет работать только в том случае, если на странице есть только одна ячейка с указанным текстом, особенно в случае двух последних примеров, в которых используется регулярное выражение для соответствия требуемому тексту. В этом случае, если есть другая ячейка с этими числами, даже если она является частью другого значения, такого как 12951.356, Ватир не узнает, к какому из них вы хотите найти соответствие, и выдаст вам ошибку.

Если какая-либо из них работает, чтобы прошить нужную ячейку, просто замените .flash на .text, чтобы получить текстовое значение в ячейке.

1 голос
/ 11 мая 2011

Попробуйте что-то вроде этого:

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