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

Selenium(Python)按钮无法点击及下拉框选择问题求助

问题解决方案

针对ElementNotInteractableException(元素零大小)的修复

元素出现零大小通常是因为未完全渲染到视口中,或页面仍在动态加载。可通过以下步骤解决:

  • 替换等待条件:将EC.element_to_be_clickable改为EC.visibility_of_element_located,确保元素不仅可点击,还完全可见
  • 点击前滚动到元素位置:用JS脚本将元素滚动到视口内,避免因元素在屏幕外导致无法交互

针对下拉框选择失败的修复

分段运行正常但全部运行失败,说明页面动态加载时机未把握好,需确保下拉框选项完全加载后再执行选择:

  • 等待下拉框元素出现后,额外等待目标选项存在,确认页面已加载出对应选项
  • 直接通过WebDriverWait获取元素,避免二次查找可能出现的元素失效问题

修改后的完整代码

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

# 初始化浏览器并打开网站
website = 'https://www.padron.gob.ar/publica/'
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(website)
driver.maximize_window()

# 选择"Distrito Electoral"中的"BUENOS AIRES"
distritoElectoralOptions = WebDriverWait(driver, 35).until(
    EC.presence_of_element_located((By.NAME, 'site'))
)
Select(distritoElectoralOptions).select_by_value('02   ')

# 点击"Consulta por Zona"按钮
consultaPorZona = WebDriverWait(driver, 35).until(
    EC.visibility_of_element_located((By.ID, 'lired'))
)
# 滚动到元素位置,确保可见
driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", consultaPorZona)
consultaPorZona.click()

# 选择"Sección General Electoral"中的"SEC_8"
# 先等待下拉框加载,再等待目标选项出现
seccionGeneralElectoral = WebDriverWait(driver, 35).until(
    EC.presence_of_element_located((By.NAME, 'secg'))
)
WebDriverWait(driver, 35).until(
    EC.presence_of_element_located((By.XPATH, "//select[@name='secg']/option[@value='00008']"))
)
Select(seccionGeneralElectoral).select_by_value('00008')

额外说明

  • 所有元素均通过WebDriverWait获取,避免直接find_element导致的未加载问题
  • 滚动操作确保元素处于视口内,解决零大小无法交互的报错
  • 等待目标选项存在,确保下拉框的动态选项已完全加载,避免找不到选项的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:31:10