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

Python使用Selenium实现DatePicker日期输入框自动填充今日日期求助

解决方法

方案1:绕过日期选择器直接赋值(更稳定)

该输入框设置了readonly属性,我们可以直接通过JS移除该属性后填入格式化后的今日日期,不需要操作复杂的日期选择器组件:

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
import datetime

if __name__ == "__main__":
    driver = webdriver.Chrome() # 按需替换为你使用的浏览器驱动
    # 访问目标页面的逻辑自行补充
    wait = WebDriverWait(driver, 10)
    birthdate_input = wait.until(EC.presence_of_element_located((By.NAME, "birthdate")))
    
    # 移除输入框的readonly属性
    driver.execute_script("arguments[0].removeAttribute('readonly')", birthdate_input)
    # 生成符合页面要求格式的今日日期,格式不匹配可调整strftime参数
    today = datetime.date.today().strftime("%Y-%m-%d")
    # 给输入框赋值
    driver.execute_script(f"arguments[0].value = '{today}'", birthdate_input)

如果页面要求的日期格式不是yyyy-MM-dd,调整strftime的格式参数即可,例如需要日月年格式就改为"%d-%m-%Y"。

方案2:模拟用户点击日期选择器选择

如果要求必须模拟真实用户操作点击日期选择器,按以下步骤实现:

  • 点击输入框唤起日期选择器面板
  • 定位到日期面板中代表今日的元素,可匹配今日的日期数字进行定位
  • 点击该元素完成选择
    对应代码:
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
import datetime

if __name__ == "__main__":
    driver = webdriver.Chrome()
    # 访问目标页面的逻辑自行补充
    wait = WebDriverWait(driver, 10)
    # 点击输入框唤起日期选择器
    birthdate_input = wait.until(EC.element_to_be_clickable((By.NAME, "birthdate")))
    birthdate_input.click()
    # 获取今日的日期数字
    today_day = str(datetime.date.today().day)
    # 定位对应日期的元素并点击
    today_element = wait.until(EC.element_to_be_clickable((By.XPATH, f'//div[contains(@class,"calendars-month-row")]//a[text()="{today_day}"]')))
    today_element.click()

原代码错误原因

你之前的代码直接点击了calendars-month-row整个容器,触发的是容器内默认选中的日期元素的点击事件,所以每次都会填入固定的默认选中日期,无法匹配今日日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:42:01