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

如何用Python Selenium正确选择日历控件日期?格式异常求助

解决日历控件日期输入异常问题

针对你遇到的直接用send_keys输入日期后显示乱码的问题,提供以下几种可行的修正方案:

方案1:清空输入框后规范格式输入

先清除输入框原有内容,再用大写月份格式输入目标日期,部分控件对日期大小写敏感:

date_input = driver.find_element(By.ID, "indentFromDateTxt")
date_input.clear()
date_input.send_keys("01-JUL-2023")

方案2:逐个字符输入日期

有些日历控件会实时格式化输入内容,一次性输入可能导致字符错位,尝试逐个字符输入规避:

date_str = "01-JUL-2023"
date_input = driver.find_element(By.ID, "indentFromDateTxt")
date_input.clear()
for char in date_str:
    date_input.send_keys(char)

方案3:通过JavaScript直接设置值

绕过前端控件的输入限制,直接用JS修改输入框的value属性,不受前端格式化逻辑干扰:

date_input = driver.find_element(By.ID, "indentFromDateTxt")
driver.execute_script("arguments[0].value = '01-JUL-2023';", date_input)

方案4:模拟手动选择日历弹窗(推荐)

如果上述方法都无效,直接操作日历弹窗选择日期更贴合控件原生逻辑:

# 点击输入框弹出日历面板
date_input = driver.find_element(By.ID, "indentFromDateTxt")
date_input.click()

# 选择年份(需根据实际页面元素调整XPATH)
driver.find_element(By.XPATH, "//select[@class='ui-datepicker-year']/option[@value='2023']").click()

# 选择月份(需根据实际页面元素调整XPATH)
driver.find_element(By.XPATH, "//select[@class='ui-datepicker-month']/option[text()='July']").click()

# 选择1号日期(需根据实际页面元素调整XPATH)
driver.find_element(By.XPATH, "//td[@data-handler='selectDay']/a[text()='1']").click()

注:此方案需配合浏览器开发者工具,根据页面日历弹窗的实际DOM结构调整定位元素的XPATH。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:30:54