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

如何使用Python Selenium修改只读input下拉框的value属性值

问题排查&解决方案

你之前操作不生效的核心原因有3个:

  1. 用getElementsByTagName按索引找元素不可靠,页面结构稍有变动就会定位到错误的input
  2. setAttribute参数写错:第一个参数应该是属性名value,你误填成了原属性值7 days,自然不会生效
  3. 模拟按键前没有激活下拉框,焦点不在选项区域,TAB、ENTER操作自然没有响应

方案1:直接通过JS修改值(最稳定,无需处理readonly属性)

不需要单独删除readonly属性,直接通过JS修改目标input的value即可,顺便触发change事件保证页面识别值变更:

# 用你原有xpath定位到目标input
date_input = driver.find_element_by_xpath('/html/body/.../div/input')
# 修改value
driver.execute_script("arguments[0].value = 'Custom date';", date_input)
# 触发change事件,适配页面的联动逻辑
driver.execute_script("arguments[0].dispatchEvent(new Event('change'));", date_input)

方案2:模拟按键选择的修正版

如果必须通过点击选择的方式操作,要先激活下拉框,再用ActionChains执行连贯按键操作,避免焦点丢失:

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

date_input = driver.find_element_by_xpath('/html/body/.../div/input')
# 点击input激活下拉选项列表
date_input.click()
# 连贯执行按键操作
actions = ActionChains(driver)
actions.send_keys(Keys.TAB)\
       .send_keys(Keys.TAB)\
       .send_keys(Keys.ENTER)\
       .perform()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:06:03