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

如何使用Selenium与Python点击See all按钮 代码报错如何排查

故障原因

  • 类名定位方法使用错误:By.CLASS_NAME仅支持传入单个类名,你传入的btn btn-outline-primary px-5包含三个独立类名,会被识别为单个带空格的类名,无法匹配到目标元素,建议改用By.CSS_SELECTOR进行多类名匹配,对应选择器写法为.btn.btn-outline-primary.px-5。
  • 变量未定义:你调用find_element后没有将返回的元素对象赋值给search变量,后续执行点击逻辑时引用search会抛出未定义错误。
  • 方法调用错误:Selenium不存在driver.find()方法,定位表格元素需使用driver.find_element(By.TAG_NAME, 'table')。
  • 缺少加载等待逻辑:未设置等待规则时,代码会在页面请求发送后立刻执行定位,大概率出现元素还未渲染完成就执行查找的情况,引发偶发的定位失败问题。

修复后代码

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

nav = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=nav)
# 配置最长10秒的显式等待,提前加载完成则提前执行后续逻辑
wait = WebDriverWait(driver, 10)

driver.get('https://getdaytrends.com/es/venezuela/#moreTrends')
                   
# 改用CSS选择器匹配多类名,同时将元素对象赋值给search变量
search = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.btn.btn-outline-primary.px-5')))
driver.execute_script("arguments[0].click();", search)

# 使用正确方法定位表格元素
datos = wait.until(EC.presence_of_element_located((By.TAG_NAME, 'table')))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:54:01