使用硒中的xpath或css获取其n个子元素具有相同类的父元素

时间:2019-07-28 08:19:00

标签: selenium-webdriver xpath css-selectors

我想使用xpath或css选择器找到class = parent-class的div元素,其三个子元素应具有相同的class = no-data。

即所有三个>父类的第3、4和5个子div应该具有“无数据”类。 例如:

<div class="main">
    <div class="parent-class">
       <div class="child-1">child1</div>
       <div class="child-2">child2</div>
       <div class="no-data">NA</div>
       <div class="data">xyz</div>
       <div class="data">ijk</div>
    </div>
    <div class="parent-class">
       <div class="child-1">child1</div>
       <div class="child-2">child2</div>
       <div class="no-data">NA</div>
       <div class="no-data">NA</div>
       <div class="no-data">NA</div>
    </div>
    <div class="parent-class">
       <div class="child-1">child1</div>
       <div class="child-2">child2</div>
       <div class="data">abc</div>
       <div class="data">xyz</div>
       <div class="data">ijk</div>
    </div>
    <div class="parent-class">
       <div class="child-1">child1</div>
       <div class="child-2">child2</div>
       <div class="no-data">NA</div>
       <div class="no-data">NA</div>
       <div class="data">ijk</div>
    </div>
</div>

4 个答案:

答案 0 :(得分:0)

尝试以下解决方案:它对我有用

//div[contains(@class,'parent-class') and div[@class='no-data'][1] and div[@class='no-data'][2] and div[@class='no-data'][3]]
                                      or 
//div[contains(@class,'parent-class') and (div[@class='no-data'][1] and div[@class='no-data'][2] and div[@class='no-data'][3])]

尽管正在寻找更好的解决方案

答案 1 :(得分:0)

您可以使用下面给出的xpath来跟踪所需的元素。

id

答案 2 :(得分:0)

我认为应该这样做:

//div[@class='parent-class']/child::div[3][@class='no-data']

答案 3 :(得分:0)

据我了解,您的要求应该类似于:

//div[@class='parent-class' and count(descendant::div[@class='no-data'])=3]

其中:

因此,上面的表达式将与具有三个no-data类的孩子的div标签匹配

相关问题