gpt4 book ai didi

python - 如何使用 selenium/python 获取父 web 元素下的所有 xml/dom 作为文本?

转载 作者:太空狗 更新时间:2023-10-30 02:36:23 25 4
gpt4 key购买 nike

我有一个场景需要处理显示为网格的 UI 对象,但行和列是包含在 xml/dom 层次结构中的独立 Web 元素,由多个 xpath 组成,可以使用通用模式进行解析。所有这些元素都包含对应于列类型的文本。通过webelement references 将这些文本一一获取需要时间。有没有办法将所有这些 xml 作为文本(或一次至少一行)以通过解析整个 xml 内联来节省提取时间。

例如,考虑下面提到的 xml。我怎样才能得到 <div[@class='table']> 下面的所有 xml 层次结构?作为要解析的文本。

这是示例:

<div[@class='table']>
<div[@class='rows']>
<div[@class='row']>
<div[@class='col']>
<div[@class='element']>some_text1</div[@class='element']>
<div[@class='element']>some_text2</div[@class='element']>
<div[@class='element']>some_text3</div[@class='element']>
...
</div[@class='col']>
</div[@class='row']>
<div[@class='row']>
<div[@class='col']>
<div[@class='element']>some_text1</div[@class='element']>
<div[@class='element']>some_text2</div[@class='element']>
<div[@class='element']>some_text3</div[@class='element']>
...
</div[@class='col']>
</div[@class='row']>
<div[@class='row']>
...
</div[@class='row']>
<div[@class='row']>
...
</div[@class='row']>
<div[@class='row']>
...
</div[@class='row']>
</div[@class='rows']>
</div[@class='table']>

我需要获取 xml/dom/div 层次结构,如下所述:

    <div[@class='rows']>
<div[@class='row']>
<div[@class='col']>
<div[@class='element']>some_text1</div[@class='element']>
<div[@class='element']>some_text2</div[@class='element']>
<div[@class='element']>some_text3</div[@class='element']>
...
</div[@class='col']>
</div[@class='row']>
<div[@class='row']>
<div[@class='col']>
<div[@class='element']>some_text1</div[@class='element']>
<div[@class='element']>some_text2</div[@class='element']>
<div[@class='element']>some_text3</div[@class='element']>
...
</div[@class='col']>
</div[@class='row']>
<div[@class='row']>
...
</div[@class='row']>
<div[@class='row']>
...
</div[@class='row']>
<div[@class='row']>
...
</div[@class='row']>
</div[@class='rows']>

一气呵成。

最佳答案

element = driver.find_element_by_xpath("//div[@class='table']").get_attribute('outerHTML')

属性outerHTML will return you the element itself and all its child nodes - 因为它们存在于 DOM 中。
我建议不要使用类似的 innerHTML,因为如果目标元素有一个文本子节点,您会收到它,但结果不会是正确的 xml。

关于python - 如何使用 selenium/python 获取父 web 元素下的所有 xml/dom 作为文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54454059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com