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

Selenium定位元素遇NoSuchElementException求助(Google Colab)

解决Selenium爬取Heroku动态网站的NoSuchElementException问题

问题根源及修复步骤

1. 类名选择器使用错误

By.CLASS_NAME只能接收单个类名,你传入的"MuiTypography-root MuiTypography-h4 css-2voflx"是多个类名组合,这会直接导致定位失败。

要定位多类名元素,改用CSS_SELECTOR或XPATH:

  • CSS选择器写法:把多个类名用.连接,注意不要留空格(空格代表后代元素)
    # CSS_SELECTOR写法
    element = driver.find_element(By.CSS_SELECTOR, ".MuiTypography-root.MuiTypography-h4.css-2voflx")
    
  • XPATH写法:通过contains匹配多个类属性
    # XPATH写法
    element = driver.find_element(By.XPATH, "//*[contains(@class, 'MuiTypography-root') and contains(@class, 'MuiTypography-h4') and contains(@class, 'css-2voflx')]")
    

2. 处理动态加载的元素

目标网站是实时更新的动态页面,元素可能还未渲染完成就执行了查找操作,必须用WebDriverWait等待元素加载完成,避免因为元素未出现报错。

结合你的代码,修改后如下:

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

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Colab环境建议添加窗口大小参数,避免元素因视口太小不可见
chrome_options.add_argument('--window-size=1920,1080')

driver = webdriver.Chrome('chromedriver', options=chrome_options)
driver.get("https://lambda-app-eia.herokuapp.com/") 

# 等待元素出现,最长等待10秒
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, ".MuiTypography-root.MuiTypography-h4.css-2voflx"))
)
# 获取元素文本或其他属性
print(element.text)

3. Colab环境的额外注意事项

  • Chromedriver版本匹配:Colab预装的Chrome版本可能和你手动指定的chromedriver版本不兼容,建议改用webdriver-manager自动管理驱动,避免版本问题:
    先安装依赖:
    !pip install webdriver-manager
    
    然后修改驱动初始化代码:
    from webdriver_manager.chrome import ChromeDriverManager
    
    driver = webdriver.Chrome(service=ChromeDriverManager().install(), options=chrome_options)
    
  • Headless模式限制:部分动态页面在headless模式下渲染有差异,若仍有问题,可以暂时注释--headless参数调试,确认元素是否真的存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:20:37