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

如何设置HTML input标签的value属性?send_keys设置后值不保留

解决input自定义下拉框值无法保存的问题

针对你遇到的input模拟下拉框用send_keys输入后切换元素值消失的问题,核心原因是这类自定义组件往往需要直接修改DOM的value属性并触发对应事件,而非仅模拟键盘输入。以下是可行的解决方案:

方法1:直接通过JS修改value属性

使用JavaScript直接修改input元素的value属性,确保DOM中值被持久化:

input_elem = driver.find_element(By.XPATH, partners_drop_down_box_xpath)
# 强制设置value属性
driver.execute_script("arguments[0].value = 'Rentrak';", input_elem)

方法2:修改value后触发必要事件

很多前端框架或自定义组件需要监听change/blur事件来确认值的更新,所以修改后需触发对应事件:

input_elem = driver.find_element(By.XPATH, partners_drop_down_box_xpath)
driver.execute_script("arguments[0].value = 'Rentrak';", input_elem)
# 触发change事件通知页面值已修改
driver.execute_script("arguments[0].dispatchEvent(new Event('change'));", input_elem)
# 可选:触发blur事件模拟离开输入框的动作
driver.execute_script("arguments[0].dispatchEvent(new Event('blur'));", input_elem)

方法3:结合点击+输入+事件触发

如果组件需要先激活输入状态,可先点击元素再输入,最后触发事件:

input_elem = driver.find_element(By.XPATH, partners_drop_down_box_xpath)
input_elem.click()
input_elem.send_keys("Rentrak")
driver.execute_script("arguments[0].dispatchEvent(new Event('change'));", input_elem)

补充说明

send_keys仅模拟键盘输入,部分自定义组件不会将输入内容同步到DOM的value属性,也不会自动触发页面所需的更新事件,导致切换元素后页面重置了输入框的值。而通过JS直接修改属性并触发事件,能确保页面正确识别并保存输入值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:52:38