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

使用Python版Selenium通过类名定位元素失败的问题求助

解决类名含空格的元素定位问题

嘿,我刚踩过类似的坑,马上帮你搞定这个定位问题!

核心问题所在

你用By.CLASS_NAME传的参数"fl-l score"其实是两个独立的类名——fl-l和score,而By.CLASS_NAME只能接受单个类名作为参数。它会把整个带空格的字符串当作一个完整的类名去查找,自然找不到你的目标元素啦。

可行的解决方案:用CSS_SELECTOR定位

CSS选择器完美支持同时匹配多个类名,而且比动态XPath更稳定,完全适合你的场景。写法是把多个类名用.连接(注意不要加空格,空格代表后代元素):

# 等待元素出现
WebDriverWait(self.driver, 5).until(ec.presence_of_element_located((By.CSS_SELECTOR, ".fl-l.score")))
# 定位元素
score_block = self.driver.find_element(By.CSS_SELECTOR, ".fl-l.score")

为什么这个方法有效?

CSS选择器里的.fl-l.score表示:同时拥有fl-l和score两个类的元素,正好对应你目标div的类名情况。只要这两个类名不会频繁变动,这个定位方式比动态生成的XPath靠谱多了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 09:32:38