火语言 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

目录
相关文章
|
6月前
|
调度 数据安全/隐私保护
火语言 RPA 实现每日自动签到
本案例基于火语言RPA实现每日自动签到,适用于各类需手动签到的平台,如社区、办公系统等。通过自动化流程完成浏览器打开、登录、签到操作,并支持定时任务,解决人工签到效率低、易遗漏问题,提升工作效率。
742 1
|
存储 安全 C++
C++ 用户输入与数据类型详解:建立基本计算器及变量类型
了解C++的用户输入和数据类型。使用`cin`从键盘读取数据,如在简单计算器示例中获取两个数字并求和。C++的数据类型包括:`int`(整数)、`float`(浮点数,约6-7位小数)、`double`(更精确的浮点数,约15位小数)、`bool`(布尔值,true或false)、`char`(单个字符)和`string`(文本字符串)。每种类型都有特定的存储大小和用途。在处理浮点数时,`double`通常更安全。字符串需要包含`<string>`库。更多内容可关注微信公众号`Let us Coding`获取。
496 0
/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
|
运维 大数据 数据建模
连载7:阿里巴巴大数据实践:OneData模型实施介绍
如何从具体的需求或项目转换为可实施的解决方案,如何进行需求分析、架构设计、详细模型设计等,则是模型实施过程中讨论的内容。
6915 1
连载7:阿里巴巴大数据实践:OneData模型实施介绍
|
JavaScript 前端开发 Java
课时12:编译型语言和解释型语言
今天为大家简单介绍计算机高级语言,如C、C++、JAVA、JavaScript、Python等,指出任何语言被计算机执行前都需转换为机器码。根据转换时机不同,高级语言分为编译型语言和解释型语言,今天的内容主要分为以下三个部分。 1.编译语言 2.解释型语言 3.两者的优缺点
628 1
|
存储 Linux Shell
深入理解Linux操作系统的启动过程
【10月更文挑战第21天】本文将深入浅出地介绍Linux操作系统的启动过程,包括BIOS、引导加载程序、内核初始化和系统服务启动等环节。通过阅读本文,您将了解到Linux启动过程中的关键步骤和相关概念,以及如何优化启动速度。
386 1
|
关系型数据库 MySQL 数据处理
Mysql关于同时使用Group by和Order by问题
总的来说,`GROUP BY`和 `ORDER BY`的合理使用和优化,可以在满足数据处理需求的同时,保证查询的性能。在实际应用中,应根据数据的特性和查询需求,合理设计索引和查询结构,以实现高效的数据处理。
1822 1
|
安全 Linux 数据安全/隐私保护
使用 `chage` 命令管理 Linux 用户密码过期策略
`chage` 命令用于管理Linux用户密码过期策略,包括设置密码最长有效期、警告天数、过期宽限期和账户非活动天数。例如,`chage -M 90 username` 设置密码最长有效期为90天,`chage -W 7 username` 设定到期前7天警告。确保具备足够权限(如root)并理解更改影响。此工具有助于增强系统安全和符合安全策略。
|
缓存 数据可视化 安全
开发阿里云 RPA 机器人的技巧
在当今数字化时代,机器人流程自动化(RPA)技术正逐渐成为企业提高效率和优化业务流程的重要手段。阿里云 RPA 作为一种强大的工具,为开发高效的机器人提供了丰富的功能和支持。本文将分享一些开发阿里云 RPA 机器人的技巧,帮助您更好地利用该平台的能力。
|
Linux 虚拟化
Linux系统下卸载VMware Workstation软件
Linux系统下卸载VMware Workstation软件
712 1
Linux系统下卸载VMware Workstation软件

热门文章

最新文章