Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium webdriver 在selenium中使用xpath或css获取其n个子元素具有相同类的父元素_Selenium Webdriver_Xpath_Css Selectors - Fatal编程技术网

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

Selenium webdriver 在selenium中使用xpath或css获取其n个子元素具有相同类的父元素,selenium-webdriver,xpath,css-selectors,Selenium Webdriver,Xpath,Css Selectors,我想使用xpath或css选择器查找class=parent class的元素div,其三个子元素应该具有相同的class=no数据 i、 e父类的所有三个>第三、第四和第五个子div都应具有“无数据”类。 例如: 孩子1 孩子2 NA xyz ijk 孩子1 孩子2 NA NA NA 孩子1 孩子2 abc xyz ijk 孩子1 孩子2 NA NA ijk 尝试了以下解决方案:它适合我 //div[contains(@class,'parent-class') and div[@class

我想使用xpath或css选择器查找class=parent class的元素div,其三个子元素应该具有相同的class=no数据

i、 e父类的所有三个>第三、第四和第五个子div都应具有“无数据”类。 例如:


孩子1
孩子2
NA
xyz
ijk
孩子1
孩子2
NA
NA
NA
孩子1
孩子2
abc
xyz
ijk
孩子1
孩子2
NA
NA
ijk

尝试了以下解决方案:它适合我

//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])]

虽然正在寻找更好的解决方案,但您可以使用下面给定的xpath来跟踪所需的元素

//div[@class='main']//child::div[2]//
child::div[@class='no-data'][1]

//div[@class='main']//child::div[2]//
child::div[@class='no-data'][2]

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

我认为这应该做到:

//div[@class='parent-class'][not(div[(position()>2 and position()<6) and .[@class != 'no-data']])]

//div[@class='parent-class'][not(div[(position()>2和position()据我所知,您的要求应该是:

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

  • -XPath是否返回当前节点及其子节点的子节点
  • -XPath是否返回与表达式匹配的节点数

因此,上面的表达式将匹配具有3个子元素且
无数据的标记

@JeremyMoritz有什么建议吗?它们是3个不同的定位器,希望只使用一个定位器定位父元素。假设第3个元素具有类,则无数据意味着第4个和第5个元素也将具有相同的类。此外,它返回child而不是parent.tw使用上面提到的xpath获取父元素,并使用前面提到的假设//div[3][@class='na-value']]/parent::divok,我的意思是三个子元素具有相同的类(五分之三)。即,在上面的示例中,我想获取父元素,其子元素3rd、4th和5th具有相同的类。@KINZ因此,需要澄清的是:在上面的html中,只有第二个父类满足条件,并且所需的输出是其名称-div?
//div[@class='parent-class' and count(descendant::div[@class='no-data'])=3]