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

Python Selenium使用nth-of-type和nth-child CSS选择器定位元素问题咨询

问题原因分析

你原来的选择器匹配出错主要有两个原因:

  1. 你提供的HTML结构存在不规范问题:重复使用了相同的id="class1",id属性要求全局唯一,如果你实际页面是用class="class1"给两个容器加类名,才可以用类选择器.class1匹配
  2. 模糊匹配规则[href*="/home"]过于宽泛,所有包含/home字符串的href都会被命中,link.com/home/def自然也符合匹配规则

修正后的选择器方案

方案1(推荐,不依赖URL前缀,匹配精度最高)

使用结尾匹配符$=限定href以/home结尾,完美避开/home1、/home/xxx这类不符合的路径,完全满足你前缀可变的需求:

.class1:nth-of-type(1) li:nth-child(2) a[href$="/home"]

方案2(严格要求必须用*=模糊匹配时使用)

叠加:not()伪类排除不符合的场景:

.class1:nth-of-type(1) li:nth-child(2) a[href*="/home"]:not([href*="/home/"]):not([href*="home1"])

额外说明

如果你的页面结构稳定,第一个.class1容器下的第二个li固定对应section2,也可以省略多余的属性过滤,直接用层级选择器定位:

.class1:first-of-type li:nth-child(2) a

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:03