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

Selenium Python日期选择器问题:无法指定选择特定日期

Selenium日期选择问题解决方案

直接通过ID定位目标日期

从你提供的HTML结构来看,每个日期单元格的ID包含了明确的日期标识(如20221129),这是最可靠的定位方式:

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()
wait = WebDriverWait(driver, 10)

# 替换成你需要选择的日期,格式为YYYYMMDD
target_date = "20221129"
# 拼接元素ID,注意末尾的O/X是日期控件的状态标识,根据实际情况调整
date_id = f"subview1:itemViewFragment1:itemForm1:texti0023_POPUP_DAY_{target_date}O"

# 等待元素可点击后点击
wait.until(EC.element_to_be_clickable((By.ID, date_id))).click()

按日期文本内容定位

如果ID的后缀(O/X)不固定,可以通过<span>中的日期文本定位:

target_day = "29"  # 目标日期的日份

# 用XPath定位包含目标文本的日期单元格
date_element = wait.until(EC.element_to_be_clickable(
    (By.XPATH, "//td[contains(@class, 'inputText_DatePicker-CurrentMonth')]/span[text()='{}']/..".format(target_day))
))
date_element.click()

关键注意点

  1. 确保日期选择器已弹出:如果需要点击输入框才会唤起日期控件,先执行输入框的点击操作:
    date_input = wait.until(EC.element_to_be_clickable((By.ID, "subview1:itemViewFragment1:itemForm1:texti0023")))
    date_input.click()
    
  2. 处理月份切换:如果目标日期不在当前显示的月份,需要先点击月份切换按钮(通常是左右箭头),切换到对应月份后再选择日期。
  3. 解决元素遮挡问题:如果点击时提示元素不可见,用JS强制点击:
    driver.execute_script("arguments[0].click();", date_element)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:45:32