Рубин. Огурец, пишу несколько шагов с помощью Xpath - PullRequest
0 голосов
/ 25 марта 2012

У меня есть следующий кусок HTMl.

<table id="movies">
 <thead><tr>
  <th><a href="/movies?ratings%5BPG%5D=1&amp;ratings%5BR%5D=1&amp;sort=title" id="title_header">Movie Title</a></th>
  <th>Rating</th>
  <th><a href="/movies?ratings%5BPG%5D=1&amp;ratings%5BR%5D=1&amp;sort=release_date" id="release_date_header">Release Date</a></th>
  <th>More Info</th>
 </tr></thead>
<tbody>
 <tr>
  <td>The Terminator</td>
  <td>R</td>
  <td>1984-10-26 00:00:00 UTC</td>
  <td><a href="/movies/2">More about The Terminator</a></td>
 </tr>
 <tr>
  <td>When Harry Met Sally</td>
  <td>R</td>
  <td>1989-07-21 00:00:00 UTC</td>
  <td><a href="/movies/3">More about When Harry Met Sally</a></td>
 </tr>
 <tr>
  <td>Amelie</td>
  <td>R</td>
  <td>2001-04-25 00:00:00 UTC</td>
  <td><a href="/movies/6">More about Amelie</a></td>
 </tr>
</tbody>
</table>

Теперь я хочу написать шаг в моем огурце, чтобы проверить, есть ли на странице указанные «рейтинги» (второй столбец)или нет.

Итак, я написал это (это часть большего кода из моего определения шага, но я проверил, все работает до этого места):

  txt = "//table[@id='movies']/tbody//td[2]"
  page.all(:xpath, txt) do |element|
    debugger
    puts element.text
  end

Однако, естьКажется, где-то небольшая ошибка, потому что я никогда не попадаю в этот блок page.all ... никакой отладчик не вызывается, например.

Любая помощь приветствуется:)

1 Ответ

0 голосов
/ 26 марта 2012

После нескольких медитативных минут проблема была решена в моем уме :) Мне просто нужно было дать .each в конце.

txt = "//table[@id='movies']/tbody//td[2]"
 page.all(:xpath, txt).each do |element|
 debugger
 puts element.text
end
...