Capybara / HTML - 检查下面的行中的文字

时间:2016-06-27 12:18:44

标签: html cucumber capybara

我正在努力与水豚和我想在网站上验证的内容。 该网站是用HTML编写的。 我试图根据标签值验证文本框中的文本。 现在已经过了几个小时了,我还是卡住了......希望有人可以帮助我!

表结构基本上如下所示:

<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 ,根据 Label2 <获取 Value2 / strong>等等。

我尝试过这样的事情:

  

page.find(:css,&#39; tr&#39;,text:Label,:match =&gt;:first).should have_text(Value)

但这仅仅意味着它在整个 tr 内进行搜索,而不是专门 Label1 Value1

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

编辑:我应该关注DataTables吗?

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

1 个答案:

答案 0 :(得分:1)

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

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