我正在尝试使用 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/