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

Python Selenium中send_keys方法报错:'WebElement'对象不可迭代

问题原因分析

你代码里的核心问题是变量名重复赋值:

  1. 一开始把receiptDate定义成了日期字符串:receiptDate=r"1403/07/03"
  2. 紧接着又用同一个变量名接收了定位到的WebElement对象:receiptDate = WebDriverWait(driver, 20).until(EC.presence_of_element_located(...))
  3. 最后调用send_keys(receiptDate)时,传入的已经是WebElement对象,而非原本的日期字符串。Selenium的send_keys方法需要接收字符串(或可迭代的字符序列),但WebElement对象不可迭代,直接触发了TypeError: 'WebElement' object is not iterable。
修复方案

把日期字符串和WebElement对象用不同变量名区分,避免覆盖:

# 单独存储日期字符串
receipt_date = r"1403/07/03"
# 用另一个变量接收定位到的元素
receipt_date_input = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[name='nreceipt.receiptDate']")))

receipt_date_input.clear()
receipt_date_input.send_keys(receipt_date)
额外优化建议
  • 可以把EC.presence_of_element_located换成EC.visibility_of_element_located,确保元素不仅存在于DOM中,还处于可见、可交互状态,避免输入失败。
  • 目标元素自带autoMask掩码逻辑,你的日期格式1403/07/03符合####/##/##要求,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:02:36