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

使用Python Selenium定位当前日期元素时出现报错问题求助

问题解决:Selenium点击日期选择器中的当前日期

问题分析

你尝试遍历日期选择器的所有日期元素,定位带有唯一类名ui-state-default ui-state-highlight的当前日期,但代码存在关键问题:使用绝对路径//a[...]会全局搜索整个页面元素,而非在当前<td>节点下查找,导致逻辑混乱;且没必要遍历所有元素——既然目标元素有唯一类名,可直接定位。

修正后的代码

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.Firefox()
driver.get('**site**')

# 打开日期选择器
date_picker_container = driver.find_element(By.XPATH, "//div[@class='ait-schedlfind-datepickers']")
date_input = date_picker_container.find_element(By.XPATH, ".//input[@class='ait-schedlfind-cal1 hasDatepicker']")
date_input.click()

# 等待日期选择器加载,直接定位并点击当前日期
wait = WebDriverWait(driver, 10)
current_day = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.ui-state-default.ui-state-highlight")))
current_day.click()

关键优化说明

  • 用WebDriverWait等待元素可点击,规避页面加载延迟导致的报错
  • 通过CSS选择器直接定位唯一类名组合的元素,无需遍历整个日期表格
  • 查找子元素时使用.//表示相对路径,限定搜索范围在父元素内部

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:26:07