python - 在 Python 版剧作家中,如何获取与 ElementHandle 相关的元素( child 、 parent 、祖 parent 、 sibling )?

标签 python dom handle playwright playwright-python

在 playwright-python 我知道我可以得到一个 elementHandle使用 querySelector() .
示例(同步):

from playwright import sync_playwright

with sync_playwright() as p:
    for browser_type in [p.chromium, p.firefox, p.webkit]:
        browser = browser_type.launch()
        page = browser.newPage()  
        page.goto('https://duckduckgo.com/')
        element = page.querySelector('input[id=\"search_form_input_homepage\"]')
    
我如何基于此获取与此相关的元素 elementHandle ? IE。 parent ,祖 parent , sibling , children 处理?

最佳答案

使用 querySelector()/querySelectorAll
XPath (XML Path Language)让您检索 elementHandle (分别是句柄的集合)。一般而言,XPath 可用于浏览 XML 文档中的元素和属性。

from playwright import sync_playwright

with sync_playwright() as p:
    for browser_type in [p.chromium, p.firefox, p.webkit]:
        browser = browser_type.launch(headless=False)
        page = browser.newPage()
        page.goto('https://duckduckgo.com/')
        element = page.querySelector('input[id=\"search_form_input_homepage\"]')
        
        parent = element.querySelector('xpath=..')
        grandparent = element.querySelector('xpath=../..')
        siblings = element.querySelectorAll('xpath=following-sibling::*')
        children = element.querySelectorAll('xpath=child::*')

        browser.close()

关于python - 在 Python 版剧作家中,如何获取与 ElementHandle 相关的元素( child 、 parent 、祖 parent 、 sibling )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65400809/

相关文章:

python - 如何从一个方法中调用另一个方法?

目录列表的 Python sorted() 与 .sort()

c# - 如何从 Python 文件句柄打开 .NET FileStream 对象?

vb.net - 从 vb.net 获取 AutoCAD 2015 中对象的句柄

python - 在以下 python for 循环中需要这么长时间

python - Notepad++ 自动检测 Python 制表符或空格

php - DOMDocument 添加属性到根标签

dom - 获取用户输入的字符

javascript - 变量将 DOM 元素处理为 null。为什么会发生这种情况?

windows - 如何在 windbg 中通过句柄获取文件路径?