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

使用Selenium填充Google Form日期无法识别无法点击下一步如何解决

问题根源
  • 直接通过execute_script修改输入框的value属性,不会触发Google Form绑定的input、change等表单校验事件,表单会判定该日期字段未完成填写,因此锁定下一步按钮
  • 你使用的下一步按钮CSS选择器为完整层级路径,稳定性极差,Google Form前端结构稍有调整就会定位失败,导致点击操作无效
解决方案

核心修正点

  1. 日期填充改用Selenium原生send_keys方法,原生输入会自动触发所有前端绑定事件,表单可以正常识别填入的内容
  2. 优化下一步按钮的定位逻辑,改用更稳定的定位方式,同时添加显式等待确保按钮可点击后再操作
  3. 适配Selenium新版语法,替换已弃用的find_element_by_css_selector方法

修正后可运行代码

from selenium import webdriver
import time
from datetime import datetime
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

# 注意:如果你的Google Form日期字段要求的格式不是年-月-日,需要调整strftime的格式参数
today_date = datetime.today().strftime('%Y-%m-%d')
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 30)
driver.get("https://forms.gle/VUwbshGuXxDb7NRbA")
time.sleep(1)

# 填充日期部分修正
date_input = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.quantumWizTextinputPaperinputInput")))
date_input.clear() # 先清空输入框默认值
date_input.send_keys(today_date) # 原生输入触发事件

# 备选方案:如果send_keys无效,可改用手动触发事件的写法
# driver.execute_script(f"arguments[0].setAttribute('value', '{today_date}')", date_input)
# driver.execute_script("arguments[0].dispatchEvent(new Event('input', { bubbles: true }))", date_input)
# driver.execute_script("arguments[0].dispatchEvent(new Event('change', { bubbles: true }))", date_input)

# 下一步按钮定位修正,优先按文本定位,稳定性更高
# 如果表单是中文版本,把'Next'改成'下一步'即可
next_btn = wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Next']/ancestor::div[@role='button']")))
next_btn.click()
额外注意事项
  • 如果运行后依然提示日期格式错误,调整strftime的格式参数适配表单要求,比如美国区常用的%m/%d/%Y格式
  • 尽量不要用绝对层级的CSS选择器定位元素,优先用属性、文本等特征定位,避免表单结构更新后代码失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:18:03