Capybara/HTML - 检查下一行中的文本

Capybara/HTML - Check text in row below

我正在努力处理水豚和我希望在网站上验证的内容。 该站点是用 HTML 编写的。 我正在尝试根据标签值验证文本框中的文本。 现在已经几个小时了,我仍然卡住了..希望有人能帮助我!

table结构基本上是这样的:

<table>
   <thead>
   <tbody>
       <tr>
         <td class="labelColumn"><span title="Label1:">Label1:</span></td>    
         <td class="outputColumn"><span id="Value1:" title="Value1:">Value1</span></td>
         <td class="labelColumn"><span title="Label2:">Label2:</span></td>    
         <td class="outputColumn"><span id="Value2:" title="Value2:">Value2</span></td>
         <td class="labelColumn"><span title="Label3:">Label3:</span></td>    
         <td class="outputColumn"><span id="Value3:" title="Value3:">Value3</span></td>
       </tr>
     </tbody>
   </table>

我想做的是根据Label1的内容得到Value1,得到Value2基于Label2

我试过类似的东西:

page.find(:css, 'tr', text: Label, :match => :first).should have_text(Value)

但这仅意味着它是在整个 tr 内搜索,而不是具体地 Label1Value1

有人能指出我正确的方向吗? 非常感谢!

编辑:我应该查看数据表吗?

| Label1 | Value1 |
| Label2 | Value2 |
| Label3 | Value3 |

CSS 选择器不适合您要评估的结构,但 XPath 可以很好地处理它。像下面这样的东西应该可以工作

page.find(:xpath, ".//td[contains(., 'Label1:')]/following-sibling::td[1]/span").should have_text('Value1')