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
相关产品推荐
相关产品推荐

