我有以下HTMl。
<table id="movies">
<thead><tr>
<th><a href="/movies?ratings%5BPG%5D=1&ratings%5BR%5D=1&sort=title" id="title_header">Movie Title</a></th>
<th>Rating</th>
<th><a href="/movies?ratings%5BPG%5D=1&ratings%5BR%5D=1&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>
现在,我想在我的Cucumber中编写步骤,以检查指定的“评级”(第二列)是否在页面上。
所以,我写了这个(这是我的步骤定义的更大代码的一部分,但我检查,一切都可以工作到这个地方):
txt = "//table[@id='movies']/tbody//td[2]"
page.all(:xpath, txt) do |element|
debugger
puts element.text
end
然而,似乎存在一个小错误,因为我从未进入此页面。所有块...例如,没有调试器调用。
感谢任何帮助:)
答案 0 :(得分:0)
在一些冥想的分钟后,我的脑海里的问题得到了解决:) 我只需要在最后给出.each。
txt = "//table[@id='movies']/tbody//td[2]"
page.all(:xpath, txt).each do |element|
debugger
puts element.text
end