Cucumber + Selenium - 如何计算表中的行数?

时间:2012-01-16 22:21:33

标签: ruby selenium cucumber

有没有人知道使用Ruby,Cucumber& amp ;;快速计算表中条目数的方法硒

该表非常基础,我想计算行数:

<table id="product_container">
 <tr>
   <th>Product Name</th>
   <th>Qty In Stock</th>
 </tr>
 <tr>
   <td>...</td>
   <td>...</td>
 </tr>
</table>

3 个答案:

答案 0 :(得分:3)

您可以使用:

page.should have_css "#product_container tr", :count => number_of_rows.to_i

答案 1 :(得分:2)

以下步骤定义适用于Capybara。

Then /^I should have (\d+) table rows$/ do |number_of_rows|
  actual_number = page.all('#product_container tr').size
  actual_order.should == number_of_rows
end

用法:

Then I should have 10 table rows

page.all documentation

答案 2 :(得分:2)

我总是在这种情况下使用getXpathCount()(Selenium方法),它工作得很好:) 在PHP中:

$rowsCount = $this->getXpathCount("//table[@id='product_container']/tr");

如果您不想计算标题行,则应将表编辑为:

<table id="product_container">
    <thead>
        <tr>
            <th>Product Name</th>
            <th>Qty In Stock</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>...</td>
            <td>...</td>
        </tr>
    </tbody>
</table>

然后您可以获得产品数量:

$rowsCount = $this->getXpathCount("//table[@id='product_container']/tbody/tr");