要求

image.png
可以根据文字很容易获取到span这个元素,那么如何再根据这个元素,获取到最外层的div元素呢?
也就是要往外跨5层。

实现

下面的代码直接摘抄过来,仅作为参考。

  1. from playwright import sync_playwright
  2. with sync_playwright() as p:
  3. for browser_type in [p.chromium, p.firefox, p.webkit]:
  4. browser = browser_type.launch(headless=False)
  5. page = browser.newPage()
  6. page.goto('https://duckduckgo.com/')
  7. element = page.querySelector('input[id=\"search_form_input_homepage\"]')
  8. parent = element.querySelector('xpath=..')
  9. grandparent = element.querySelector('xpath=../..')
  10. siblings = element.querySelectorAll('xpath=following-sibling::*')
  11. children = element.querySelectorAll('xpath=child::*')
  12. browser.close()

参考

In Playwright for Python, how do I get elements relative to ElementHandle (children, parent, grandparent, siblings)?