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

使用Selenium点击指定class按钮失败,求正确的元素定位实现方法

错误原因

原CSS选择器语法不符合规范:CSS选择器中类名需要加.前缀,多个类名作用于同一个元素时需要连续拼接,中间加空格会被识别为「选择后代元素」,你原有的写法会匹配button元素后代中标签为is-gray的元素的后代中标签为pagination__more的元素,无法定位到目标按钮。

正确定位方案

方案1:修正CSS选择器定位

# 匹配button标签+全部类名,定位精准度更高
allm = driver.find_element(By.CSS_SELECTOR, 'button.button.is-gray.pagination__more')
# 类名组合足够唯一的话也可以省略标签
# allm = driver.find_element(By.CSS_SELECTOR, '.button.is-gray.pagination__more')
allm.click()

方案2:通过按钮文本定位

适合按钮文本Open在当前页面唯一的场景,搭配显式等待可以避免页面未加载完成导致的报错:

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

# 最长等待10秒,直到元素可点击再执行操作
allm = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[text()="Open"]')))
allm.click()

方案3:通过onclick属性定位

如果按钮的onclick属性固定不变,可以用该特征定位:

allm = driver.find_element(By.CSS_SELECTOR, 'button[onclick="getListRating(1); return false;"]')
allm.click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:39:04