火语言 RPA: 用「模拟键盘按键」搞定页面输入框填写

简介: 本案例针对自动化填写中输入框内容追加、JS清空无效等难题,通过模拟真实用户键盘操作(Ctrl+A全选+Delete删除),彻底清空输入框并绕过前端框架状态限制,确保内容准确写入,提升自动化稳定性。

一、案例说明

在自动化填写页面搜索框 / 输入框的场景中,常遇到输入框各类写入异常问题:
场景1:直接写入无响应

问题表现:使用「输入框填写」组件无法将内容写入输入框;
核心原因:该组件仅直接修改输入框的 DOM 属性值,未触发网页内置的输入校验、内容监听等前端事件,导致页面未识别到输入操作;
解决策略:先用「获取 / 失去焦点」组件激活输入框,再通过「模拟键盘输入」组件完成内容填写;
参考案例:https://www.huoyuyan.com/community/detail.html?id=401

场景 2:内容追加写入(基础解决)

问题表现:新输入的内容会追加到输入框原有内容之后,无法覆盖旧内容;
核心原因:输入框默认采用内容追加逻辑;
解决策略:使用「网页注入 JS 脚本」组件强制清空输入框的 value 属性,清除原有内容;
参考案例(组件 8):https://www.huoyuyan.com/community/detail.html?id=355

场景 3:JS 清空无效的极端追加场景

问题表现:即使通过 JS 脚本清空了输入框 value,后续输入仍会追加到上次内容之后;
核心原因:部分复杂输入框(如前端框架渲染的组件)会维护独立的内部状态,仅清空 value 属性无法同步这一状态;
解决策略:采用「模拟键盘按键删除」组件(如全选内容后删除、逐字符删除),复刻真实用户的键盘操作,彻底清空输入框并同步页面内部状态,保障后续写入稳定执行;

本案例是针对上述场景3的情况进行实操演示:

二、案例逻辑

核心思路:模拟真实用户的键盘操作,从物理层面清空输入框内容,绕过前端框架的隐藏校验与状态限制。
定位目标输入框的值,模拟键盘全选输入框内容(Ctrl+A),逐字符删除(Backspace/Delete),确认输入框彻底清空后,执行目标内容的写入操作。

三、操作细则

1、打开浏览器,初始化浏览器
image.png

2、浏览网页,输入网址URLhttps://www.yuque.com/login?register_with_scene=true&defaultType=org&register_from=official_website_top_button
image.png

3、获取/失去焦点,获取手机号输入框的焦点
目标元素:#ReactApp > div > div.lark.page-account.pc-web.lark-login > div > div:nth-child(1) > div > div > div > div.lark-form-content.form-pro > div > form > div:nth-child(1) > div > div > span > div > span > input
image.png
image.png

4、获取单元素信息/属性值,获取输入框的值
目标元素:input[data-testid="prefix-phone-input"]
属性名称:value
image.png

5、模拟键盘按键,Ctrl+A全选输入框的值
image.png

6、模拟键盘按键,删除(Delete)全选内容
image.png

7、模拟键盘输入,模拟键盘按键输入内容
image.png

8、鼠标拖拽元素,拖拽鼠标滑块元素
参考案例:https://www.huoyuyan.com/community/detail.html?id=417
image.png
image.png

案例分享: https://www.huoyuyan.com/share.html?key=eyJjb2RlIjoiWDd4YyIsImF1dG9Db2RlIjoiVHJ1ZSIsImtleSI6ImJiMmU0ZGI1YTQ3ZjQzMzdiNmYyMzlmZjFmYjZjYzEyIn0= 提取码: X7xc

目录
相关文章
|
存储 安全 C++
C++ 用户输入与数据类型详解:建立基本计算器及变量类型
了解C++的用户输入和数据类型。使用`cin`从键盘读取数据,如在简单计算器示例中获取两个数字并求和。C++的数据类型包括:`int`(整数)、`float`(浮点数,约6-7位小数)、`double`(更精确的浮点数,约15位小数)、`bool`(布尔值,true或false)、`char`(单个字符)和`string`(文本字符串)。每种类型都有特定的存储大小和用途。在处理浮点数时,`double`通常更安全。字符串需要包含`<string>`库。更多内容可关注微信公众号`Let us Coding`获取。
375 0
|
2月前
|
数据采集 存储 数据可视化
【实战案例】使用火语言RPA『表格数据提取』组件,批量爬取蔬菜价格+Excel 整理
火语言RPA中,爬取网页表格数据不必逐个提取元素!使用「表格数据提取」组件,可一键抓取整表内容。本文以采集10页蔬菜价格为例,手把手教你新建全局表格、循环翻页、自动提取并导出Excel,最后进行数据清洗整理,全程可视化操作,新手也能快速上手,高效完成多页表格采集任务。
191 2
|
5月前
|
NoSQL IDE MongoDB
Studio 3T 2025.17 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.17 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
374 1
Studio 3T 2025.17 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available
|
4月前
|
存储 前端开发
【实战案例】火语言 RPA 采集小说站已完结书名(自动翻页判断),保存到Excel 全流程(附完整脚本)
自动采集起点中文网完本小说书名,支持翻页检测与数据存储。脚本逐页抓取小说名并保存至Excel,最多采集50页,智能判断翻页逻辑,确保数据完整,适用于批量获取完结书籍信息。
294 5
|
7月前
|
API 数据安全/隐私保护 Python
批量发短信的软件,自动群发短信批量工具,手机号电话生成脚本插件【python】
该工具包含三个核心模块:短信发送核心功能、配置管理系统和命令行界面。使用时需先配置API密钥和短信模板
|
关系型数据库 MySQL 数据处理
Mysql关于同时使用Group by和Order by问题
总的来说,`GROUP BY`和 `ORDER BY`的合理使用和优化,可以在满足数据处理需求的同时,保证查询的性能。在实际应用中,应根据数据的特性和查询需求,合理设计索引和查询结构,以实现高效的数据处理。
1624 1
|
存储 中间件 数据安全/隐私保护
中间件中OAuth 2.0 和 OpenID Connect
【6月更文挑战第4天】
762 5
|
存储 分布式计算 大数据
大数据技术概述
大数据技术概述
|
JavaScript 安全 前端开发
错误处理:在Vue中捕获和处理异常
【4月更文挑战第24天】Vue.js开发中,错误和异常处理对于保持用户体验和应用稳定性至关重要。Vue提供`errorCaptured`钩子函数,可在组件及其子组件中捕获错误,通过参数进行处理。例如,在`App`组件中定义`errorCaptured`,调用自定义`handleError`方法记录错误。此外,可使用`try...catch`处理异步错误,全局错误处理则可通过`Vue.config.errorHandler`设置。结合这些机制,开发者能有效管理错误,提升应用的稳定性和易维护性。
672 7