You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Selenium中用后代选择器(>>)通过CSS选择器定位相似元素?

解决Selenium中CSS选择器定位相似元素的问题

错误原因

你使用的>>并不是CSS选择器的合法语法,CSS中表示后代元素的选择器是空格,这是代码报错的核心原因。

两种实现方案

方案1:通过共同祖先批量定位

如果只需匹配目标祖先下的所有img后代(包含你要的xxx和yyy),将>>替换为空格,并使用find_elements(复数形式,返回所有匹配元素):

# 获取所有符合条件的img元素
target_imgs = driver.find_elements(By.CSS_SELECTOR, '#contents > div.tabWrap.pdtTabWrap.fixed > div.tabContents > section.tabCont.active img')

# 分别获取xxx和yyy(顺序取决于DOM结构中的出现顺序)
xxx = target_imgs[0]
yyy = target_imgs[1]

方案2:精确匹配两个特定元素

如果要避免匹配到其他无关img,可以用CSS的多选择器语法(逗号分隔),合并两个完整定位路径:

target_imgs = driver.find_elements(By.CSS_SELECTOR, 
    '#contents > div.tabWrap.pdtTabWrap.fixed > div.tabContents > section.tabCont.active > div > div.prdDetailConWrap > div.prdType.prdType11 > div.imgWrap.imgCrop > img, '
    '#contents > div.tabWrap.pdtTabWrap.fixed > div.tabContents > section.tabCont.active > div > div > div.prd_sec.prd_top_type01.sec01.mt0 > div > div.top_img_box > img'
)
xxx = target_imgs[0]
yyy = target_imgs[1]

注意事项

  • find_element(单数)仅返回第一个匹配元素,需获取多个元素必须用find_elements(复数)。
  • 如果DOM中img顺序不确定,建议给目标元素添加独特识别特征(如class、alt属性),避免索引错误。

内容的提问来源于stack exchange,提问作者user20236531

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:15:37