如何使用 Selenium Python 提取 #shadow-root(打开)中的信息?
- 2025-02-08 08:52:00
- admin 原创
- 58
问题描述:
我获得了与在线商店https://www.tiendasjumbo.co/buscar?q=mani相关的下一个 URL ,但我无法提取产品标签和另一个字段:
from selenium import webdriver
import time
from random import randint
driver = webdriver.Firefox(executable_path= "C:Program Files (x86)geckodriver.exe")
driver.implicitly_wait(10)
time.sleep(4)
url = "https://www.tiendasjumbo.co/buscar?q=mani"
driver.maximize_window()
driver.get(url)
driver.find_element_by_xpath('//h1[@class="impulse-title"]')
我做错了什么,我也尝试过切换 iframe,但没有办法实现我的目标?欢迎任何帮助。
解决方案 1:
网站https://www.tiendasjumbo.co/buscar?q=mani内的产品位于 内#shadow-root (open)
。
解决方案
要提取您必须使用的产品标签shadowRoot.querySelector()
,并且可以使用以下定位器策略:
代码块:
driver.get('https://www.tiendasjumbo.co/buscar?q=mani')
item = driver.execute_script("return document.querySelector('impulse-search').shadowRoot.querySelector('div.group-name-brand h1.impulse-title span.formatted-text')")
print(item.text)
控制台输出:
La especial mezcla de nueces, maní, almendras y marañones x 450 g
参考
您可以在以下位置找到几个相关的讨论:
无法使用 Selenium 和 Python 找到 #shadow-root (打开) 中的登录元素
如何使用 Selenium 和 Python 在网站 https://www.virustotal.com 中的 shadow-root(打开)内找到名字字段
Microsoft Edge 和 Google Chrome 版本 96
Chrome v96 已更改 Selenium 的影子根返回值。一些有用的链接:
Java - GitHub 上的完整示例
Selenium 中的 Shadow DOM
Python - GitHub 上的完整示例
Chromium 96 中的 Shadow DOM 和 Selenium
C# - GitHub 上的完整示例
Ruby Selenium 中的 Shadow DOM
Ruby - GitHub 上的完整示例
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD