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

Python Selenium无法选择Wunderground下拉框城市选项求助

解决Wunderground网站下拉列表选择城市的问题

你的代码存在几个关键问题,导致无法选中目标城市:

  • 缺失time模块导入,运行时会直接报错
  • 使用固定索引的XPath定位下拉选项,元素位置可能随页面加载变化,稳定性极差
  • 未等待下拉列表加载完成就直接定位元素,极易触发元素未找到的异常

修正后的代码

from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import time  # 补充缺失的模块

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://www.wunderground.com/")
driver.maximize_window()
time.sleep(2)  # 缩短低效的长等待,配合显式等待提升稳定性

# 定位搜索框并输入关键词
search_city = driver.find_element(By.ID, "wuSearch")
search_city.send_keys('new york')

# 显式等待下拉选项加载完成,精准定位目标城市
wait = WebDriverWait(driver, 10)
target_option = wait.until(EC.element_to_be_clickable((By.XPATH, '//search-autocomplete//li[contains(text(), "New York City, NY")]')))
target_option.click()

核心改进点

  • 补充import time语句,解决运行报错问题
  • 替换固定索引定位为文本匹配定位,通过contains(text(), "New York City, NY")精准锁定目标选项,不受列表元素顺序影响
  • 使用WebDriverWait显式等待元素可点击,替代固定时长的time.sleep(10),既保证元素加载完成,又提升代码执行效率
  • 移除当前场景未用到的模块导入(如Select、ActionChains),精简代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:07:13