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

为何使用Robot framework Selenium库输入Web应用文本框的值会消失

Robot Framework Selenium输入文本后内容自动消失解决方案

1 先确认元素定位准确性

你当前使用的xpath是向上回溯三级匹配input,很容易出现定位到错误元素的问题:

  • 打开浏览器F12控制台,执行以下代码验证定位结果:
    $x('//*[text()="Daily Order Limit"]/../../../input')
  • 检查返回的元素列表:确保只有1个匹配项,且该元素是可见可操作的目标输入框。如果存在多个匹配项,给xpath补充过滤规则,比如添加可见性过滤://*[text()="Daily Order Limit"]/../../../input[not(contains(@style,'display:none'))][1]

2 处理前端框架事件拦截问题

90%以上的此类问题都是Vue/React等前端框架的输入防抖、实时校验逻辑导致的:Robot默认的Input Text关键字是直接给输入框赋值,不会触发前端绑定的input/change原生事件,输入后会被框架逻辑自动清空。可以用以下两种方案解决:

方案1:模拟真实键盘输入

替换Input Text关键字为Press Keys,模拟人工敲击输入:

Press Keys    //*[text()="Daily Order Limit"]/../../../input    150

方案2:强制赋值+主动触发事件

如果方案1无效,直接用JS强制赋值后主动触发前端所需事件,完全绕过关键字的输入逻辑:

Execute Javascript    arguments[0].value = '150'; arguments[0].dispatchEvent(new Event('input')); arguments[0].dispatchEvent(new Event('change'));    //*[text()="Daily Order Limit"]/../../../input

3 特殊场景兼容处理

  • 如果输入框存在动态的readonly/disabled属性,输入前先清除限制属性:
Execute Javascript    arguments[0].removeAttribute('readonly');arguments[0].removeAttribute('disabled');    //*[text()="Daily Order Limit"]/../../../input
  • 如果输入框在iframe内嵌页面中,操作前必须先用Select Frame关键字切换到对应iframe上下文,操作完成后再用Unselect Frame切回主页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:45:08