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

Selenium爬取带Next按钮表格遇element not interactable错误求助

解决Selenium点击“下一页”按钮出现element not interactable的问题

首先纠正代码里的拼写错误:seleneium 应为 selenium。针对按钮无法交互的问题,可尝试以下几种解决思路:

  • 等待元素完全可交互
    页面加载时,按钮元素可能已被定位但还处于不可点击状态,需通过显式等待确保元素具备交互条件:

    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
    
    driver = webdriver.Chrome()
    driver.get("https://data.sfgov.org/Public-Safety/Map-of-Police-Department-Incident-Reports-2018-to-/jq29-s5wp")
    
    # 显式等待10秒,直到按钮可点击
    next_btn = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CLASS_NAME, "pager-button-next"))
    )
    next_btn.click()
    
  • 滚动到按钮可视区域
    按钮位于页面底部,不在当前视窗内时也会触发不可交互错误,可先滚动到元素位置再尝试点击:

    # 定位按钮后滚动到其所在位置
    next_btn = driver.find_element(By.CLASS_NAME, "pager-button-next")
    driver.execute_script("arguments[0].scrollIntoView();", next_btn)
    # 等待元素可交互后点击
    WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.CLASS_NAME, "pager-button-next")))
    next_btn.click()
    
  • 使用JavaScript强制点击
    如果前两种方法无效,可直接通过JavaScript执行点击操作,绕过Selenium的交互检查:

    next_btn = driver.find_element(By.CLASS_NAME, "pager-button-next")
    driver.execute_script("arguments[0].click();", next_btn)
    

爬取所有页面数据时,建议加入循环逻辑,判断“下一页”按钮是否还处于可用状态(比如检查是否带有disabled类),直到按钮无法点击为止,避免无限循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:44:59