python - 如何在 selenium (python) 中接收子节点的内部 HTML?

标签 python selenium xpath

我正在尝试遍历多个节点并从父节点接收各种子节点。假设我有类似以下结构的东西:

<div class="wrapper">
    <div class="item">
        <div class="item-footer">
            <div class="item-type">Some data in here</div>
        </div>
    </div>
    <!-- More items listed here -->
</div>

我可以使用以下方法接收包装器容器的所有子节点。

wrapper = driver.find_element(By.XPATH, '/html/body/div')
items = wrapper.find_elements(By.XPATH, './/*')

无论如何,我无法弄清楚现在如何接收包含有关项目类型的信息的容器的内部 HTML。我试过这个,但是没用。

for item in items:
    item_type = item.item.find_element(By.XPATH, './/div/div').get_attribute('innerHTML')
    print(item_type)

这会导致以下错误:

NoSuchElementException: Message: Unable to locate element:

有人知道我该怎么做吗?

最佳答案

如果你想要获取的所有元素都是 div 并且 class 属性值 item-type 位于 div 具有 class 属性值 item-footer 您可以简单地执行以下操作:

elements =  driver.find_element(By.XPATH, '//div[@class="item-footer"]//div[@class="item-type"]')
for element in elements:
    data = element.get_attribute('innerHTML')
    print(data)

关于python - 如何在 selenium (python) 中接收子节点的内部 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70293338/

相关文章:

python - Pytest 运行所有测试两次并比较模拟结果和真实结果

php - 由简单的XPath错误困扰

xpath - 可能在 xpath 中有条件字符串连接或连接?

xml - XSLT:将同级文本节点移动到选定节点中以进行 XLIFF 修复

python - python 地板除法运算符是如何实现的?

python - 如何强制以特定的明显模式对数据进行聚类?

android - 特威利奥 : Getting child call sid in android client

python - Shell - 尝试输出日志文件的最后部分(时间戳是分隔符)

python - 从 Selenium for Python 中具有相同类的多个元素获取文本?

python - Jenkins 执行时间太长