影刀RPA新手教程:输入文本与模拟输入的区别——什么时候用哪个

在影刀里往输入框填内容,有两个长得像的指令:“输入文本”和“模拟输入”。新手经常用错——明明填进去了,提交时却是空的;或者中文变成了乱码。

一句话区分: 输入文本是“后台粘贴”,快但不触发实时校验;模拟输入是“真人在打字”,慢但能触发搜索联想、表单实时验证。

picture.image


指令1:输入文本(默认推荐)

picture.image

工作原理:直接把文本复制粘贴到输入框,绕过键盘事件。本质是修改输入框的value属性。

适用场景

  • 普通表单填单(地址、电话、备注)

picture.image

  • 登录框输账号密码
  • 任何不需要实时触发前端事件的输入框

操作方法

  1. 捕获输入框元素

picture.image 2. 右侧指令面板拖入“输入文本”

  1. 在“文本”参数里填内容(支持变量)
  2. 可选“清空原有内容”(默认勾选)

配置示例

picture.image

输入文本:
  - 元素:捕获的“用户名”输入框
  - 文本:${用户名变量}
  - 清空原有内容:✅ 勾选
  
![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/2d2d0909844b4e2181aa72bb643954bc~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781750624&x-signature=HPa9DASCuM6nvWXRXheD6a7IfcY%3D)
  - 输入模式:输入文本(默认)

⚠️ 踩坑:用“输入文本”后,有些网页的“提交”按钮还是灰色的,因为你虽然填了内容,但网页没有检测到“输入事件”。这时候就要换“模拟输入”。

picture.image

指令2:模拟输入(真人打字模式)

工作原理:逐个字符触发键盘事件(keydown、keypress、keyup),每个字符间隔几毫秒。

picture.image

适用场景

  • 搜索框需要触发下拉联想(如淘宝、小红书搜索)
  • 表单有实时验证(如“用户名已被占用”提示)
  • 输入后按钮状态从灰色变可用
  • 密码框有虚拟键盘/安全控件

操作方法

  1. 同样捕获输入框元素
  2. 拖入“输入文本”指令,输入模式下拉选择“模拟输入”
  3. 可设置“按键间隔”(默认50毫秒,可调快或慢)

配置示例

输入文本:
  - 元素:捕获的“搜索框”
  - 文本:${关键词}
  - 清空原有内容:✅
  - 输入模式:模拟输入
  - 按键间隔:30毫秒(数字越小越快)

⚠️ 踩坑:模拟输入速度慢。输入100个字符大约耗时100×间隔。如果间隔50毫秒,100个字要5秒。能不用就不用


对比速查表

对比项输入文本模拟输入
触发键盘事件❌ 不触发✅ 完整触发
触发input/change事件❌ 大多数不触发✅ 触发
速度极快(瞬间完成)慢(逐字符)
中文支持完美个别网站乱码
网页能检测到是RPA可能检测(因为无事件)更像真人
推荐使用率80%场景20%场景

picture.image

实战场景1:小红书搜索框(必须用模拟输入)

小红书的搜索框,输入文字后需要弹出联想词。用“输入文本”填进去,联想词不出现。

正确做法

1. 点击元素(搜索框)
2. 固定等待(0.3秒)
3. 模拟输入(关键词, 间隔=50毫秒)
4. 固定等待(0.5秒)  # 等联想词出现
5. 点击元素(第一个联想词)

为什么必须模拟输入:小红书前端监听了input事件,只有键盘输入才会触发。“输入文本”直接改value,不触发事件。


实战场景2:登录表单(用输入文本即可)

picture.image

普通网站的登录框,只需要账号密码正确,不需要触发任何实时校验。用“输入文本”更快更稳。

错误做法:用模拟输入,每个字符慢慢敲,浪费时间。

正确做法

输入文本(账号)
输入文本(密码)
点击登录

除非网站有“密码强度实时检测”或“账号格式实时校验”,否则不需要模拟输入。


实战场景3:淘宝搜索联想的组合技巧

淘宝搜索框既需要触发联想,又希望速度快。可以混合使用:

# 方案:输入文本 + 手动触发事件(不推荐新手)
# 更简单的办法:模拟输入只输第一个字,触发联想后点推荐词

模拟输入(第一个字, 间隔=0)
固定等待(0.3秒)
# 联想词出现后,直接点推荐词,不用输完整
点击元素(第一个推荐词)

这样只模拟输入一个字符,速度快多了。


常见问题速查

问题原因解决方法
输入文本填了但提交时报空网页只认input事件换成模拟输入
模拟输入中文变乱码某些输入法兼容问题先切换到英文输入法;或用输入文本
模拟输入太慢按键间隔太大把间隔调到10~30毫秒
输入框有默认文字没清干净没勾选“清空原有内容”勾选;或先手动Ctrl+A删除
输入后按钮仍灰色可能需要点击输入框外部触发校验输入后执行点击页面空白处或按Tab键
密码框模拟输入失败部分网站屏蔽JS模拟键盘换成输入文本(密码框通常不需要触发事件)

我的经验:优先用输入文本,不行再换

测试流程

  1. 先用“输入文本”,点击提交或搜索
  2. 如果页面有反应(成功跳转或列表更新),说明够了
  3. 如果没反应或提示为空,换成“模拟输入”

不用一上来就模拟输入。我见过有人整个流程全是模拟输入,一个搜索跑10秒,优化后变成0.5秒。


进阶技巧:触发input事件的Python方法

如果输入文本后需要手动触发input事件,可以用“执行Python代码”指令:

# 输入:元素对象(影刀传入的element)
# 输出:无

# 执行JS触发input事件
element = input_element  # 影刀传入的元素变量
driver = element._parent
driver.execute_script("""
    var el = arguments[0];
    el.value = arguments[1];
    el.dispatchEvent(new Event('input', { bubbles: true }));
""", element, "你要填的内容")

这个方案兼顾速度和事件触发,但需要一点Python基础。不熟悉的直接用模拟输入更省事。


影刀版本说明

  • 社区版和创业版的“模拟输入”功能一致
  • 按键间隔最小可设0毫秒(实际仍有微小延迟),不建议设0,容易卡死
  • 新版影刀3.0+支持“模拟输入前自动清空”,不用单独加清空指令

官方推荐:查看影刀指令手册中“输入文本”词条,有动图演示两种模式的区别,非常直观。


作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论