Ruby Selenium Web驱动程序:如何计算特定节点的子元素节点

时间:2017-04-06 01:10:08

标签: ruby selenium xpath

新手硒程序员请帮助我...

我有html以下,我正在尝试计算元素<div class="result-controls">的子节点,即4(1 div和3 li个元素)

<div class="result-controls">
   <div class="attachment">
      <li class="add-attachment-button-column"><a><button>ADD ATTACHMENTS</button></a></li><input type="file" multiple="" style="display: none;">
   </div>
   <li class="sign-button-column"><a href="javascript:void(0)"><button>SIGN</button></a></li>
   <li class="draft-button-column"><a><button>DRAFT</button></a></li>
   <li class="delete-column"> <a href="javascript:void(0)"><svg class="glyphicon-trash" viewBox="0 0 100 100"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trash"></use></svg> </a></li>
</div>

目前正在单独计算点数,如下所示(row变量高于html)

  li_actions_count = row.find_elements(:xpath => "./li").length
  div_actions_count = row.find_elements(:xpath => "./div").length

任何人都可以使用selenium web driver

在Ruby中使用一种简单的方法来帮助我

2 个答案:

答案 0 :(得分:1)

您可以使用xpath =“./*”

获取行的直接子项

答案 1 :(得分:1)

根据您希望XPath的具体程度,有一些可能的方法,例如:如果您只想计算任何名称的子元素,则可以使用*

row.find_elements(:xpath => "*").length

如果您想专门计算某些名称的子元素,例如lidiv

row.find_elements(:xpath => "*[self::li|self::div]").length