Python selenium:嵌套元素查找

问题描述 投票:0回答:1

我正在尝试编写一个函数,它从 html 的任何嵌套级别返回一个元素列表,其中文本中包含单词“products”,不区分大小写。

这是我的功能:


def __find_elements(driver):
    return driver.find_elements(By.XPATH,
                                "//*[contains(translate(descendant::text(), "
                                "'ABCDEFGHIJKLMNOPQRSTUVWXYZ', "
                                "'abcdefghijklmnopqrstuvwxyz'), "
                                "'products')]")

; 由于某种原因,处理这部分 HTML


<a class="nav-link main-navigation-link" href="https://www.leuze.com/en-int/products" itemprop="url" data-flyout-menu-trigger="e3e2319128d6464d8a025ac00823ce4e" title="Products">
    <div class="main-navigation-link-text"\>
        <span itemprop="name"\>Products\</span\>
    </div\>
</a\>

, 该函数返回 [] 而不是列表,其中包含以下 span 元素:


<span itemprop="name">Products</span>

.

问题: 您能否澄清一下,如何修改函数以返回包含上述 span 元素的列表,同时处理 HTML 部分?

预计: 包含元素的列表

<span itemprop="name">Products</span>

实际发生的事情: 空列表

python html selenium-webdriver nested recursive-descent
1个回答
0
投票

试试这个:

elements = driver.find_elements_by_xpath("//span[@itemprop='name']")

这将获取跨度内具有 itemprop='name' 的所有元素

© www.soinside.com 2019 - 2024. All rights reserved.