【问题标题】:In Playwright for Python, how do I get elements relative to ElementHandle (children, parent, grandparent, siblings)?在 Python 的 Playwright 中,我如何获取与 ElementHandle 相关的元素(孩子、父母、祖父母、兄弟姐妹)?
【发布时间】:2021-03-31 16:35:34
【问题描述】:

在 playwright-python 中,我知道我可以使用 querySelector() 获得 elementHandle

示例(同步):

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 获取与此相关的 an 元素? IE。父母、祖父母、兄弟姐妹、孩子的句柄?

【问题讨论】:

    标签: python dom handle playwright playwright-python


    【解决方案1】:

    querySelector() / querySelectorAllXPath (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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 2023-03-17
      相关资源
      最近更新 更多