python - 使用 Playwright 获取影子 DOM 元素后面的元素文本

标签 python playwright playwright-python

我正在尝试使用 Playwright 获取打开的影子根元素的内容,如下所示。

<some-element>
  #shadow-root
  ABC
</some-element>

这里#shadow-root包含文本ABC,没有任何其他标签。

我能够找到some-element,但找不到获取#shadow-root内容的方法

我使用的示例 Python 代码如下:

from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.firefox.launch(args=["--disable-gpu"], headless=False)
    page = browser.new_page()
    page.goto("https://www.sample.com")
    some_element = page.locator('some-element')
    ...
    # ???

剧作家docs声明他们的选择器可以选择 Shadow DOM 中的元素,但示例仅包含 shadow-root 包含其他标签的选项。

如果#shadow-root只包含文本,没有任何标签,如何获取它的内容?

最佳答案

定位器将帮助您找到元素。但从那里开始,如果您没有可以穿透 Shadow DOM 的元素,您可能需要手动执行此操作。

text = page.locator('some-element').first.evaluate("node => node.shadowRoot.innerHTML")

关于python - 使用 Playwright 获取影子 DOM 元素后面的元素文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74796191/

相关文章:

python - 在 Django 中创建自定义命令

python - 数据库错误 : ORA-01036: illegal variable name/number

python - 在 Python,Python Image Library 1.1.6 中,如何在不调整大小的情况下扩展 Canvas ?

python - 使用 Playwright for Python,如何从下拉列表中选择一个选项?

django - 剧作家+ Django : how to wait for events

scrapy - 如何添加剧作家的等待时间

python - 如何处理有关将 int 应用于包含一项的系列的 FutureWarning?

node.js - Playwright - 无法使用文件 ://in an img tag 访问本地文件

playwright - 如何在 TypeScript 中获取 Playwright 当前的测试名称?

typescript - 如何让 Playwright 在我的配置文件中使用 headless 的值?