如何选择同一类的某些元素?

时间:2019-06-13 12:19:23

标签: python selenium selenium-webdriver xpath xpath-2.0

我需要选择同一类的一些元素。

html伪代码:

<div class="a">
    <div class="2">
    ...
    ...
    ...
        <div class="3">
            <div class="4">
            <div class="4">
<div class="b">
    <div class="2">
    ...
    ...
    ...
        <div class="3">
            <div class="4">
            <div class="4">

python代码:

list = driver.find_elements_by_xpath("//div[@class='a']/div[@class=...]/div[@class='2']/div[@class='3']")

我想从class="4"开始的分支中选择class="b"的元素。用我的代码,我得到空长度的列表。我尝试通过css-selector查找变量,但是得到了相同的结果。没有错误或例外。

3 个答案:

答案 0 :(得分:0)

尝试以下xpath

//div[@class='b']//div[@class='4']

list = driver.find_elements_by_xpath("//div[@class='b']//div[@class='4']")

答案 1 :(得分:0)

您可以使用descendant XPath斧头来仅选择具有b的{​​{3}}的div的孩子

类似的东西:

//div[@class='b']/descendant::*/div[@class='4']

应该为您解决问题:

class attribute

更多信息:

答案 2 :(得分:0)

具体来说,您的情况可以通过xPath来解决:

//*[@class = "b"]//*[@class = "4"]

或指向div元素:

//div[@class = "b"]//div[@class = "4"]

enter image description here