自动化流程中经常需要在目标界面中准确、快速地输入一些信息或数据,RPA提供了多种自动化操作的原子能力,本文介绍在操作浏览器、操作软件客户端两类场景下的常见操作方式、以及如何选择合适的方式进行输入。
浏览器操作
本章节以操作Chrome浏览器为例,如需对其他类型的浏览器自动化操作,可以查找对应的编码开发的SDK方法、或可视化开发组件的帮助文档。
输入文本
编码开发模式
客户端版本号 >= 4.10.3.1033
建议使用 input_text_simulated,可满足绝大部分使用需要
如果您对输入速度有要求,可尝试如下两种方法:
方法1:input_text_directed。注意该方法和被操作页面的技术实现方式有关,不能保证所有页面都有效,需要进行测试
方法2:利用系统剪贴板进行输入。注意该方法对机器人的运行环境有一定要求
低版本客户端
使用 input_text
如果您对输入速度有要求。可尝试利用系统剪贴板进行输入,注意该方法对机器人的运行环境有一定要求
可视化开发模式
优先使用填写输入框(网页),可满足绝大部分使用需要
其次尝试利用系统剪贴板进行输入,需要注意该方式对机器人的运行环境有一定要求
输入密码
网页中的密码输入框,一般可分为两类
使用快捷键
操作网页时使用到快捷键,例如在搜索框中输入内容后、直接使用回车完成提交动作。可参考 input_hotkey用法和虚拟键码清单。
如果需要操作浏览器软件本身,比如使用Chrome的开发工具的某些功能,需要将Chrome作为软件窗口进行操作,详见 使用快捷键。
软件窗口操作
本章节以操作Windows窗口为例进行介绍
输入文本
使用 input_text
如果您对输入速度有要求。可尝试利用系统剪贴板进行输入,需要注意该方式对机器人的运行环境有一定要求
输入密码
需要使用drive_input方式,完成密码输入。
编码开发模式
可视化开发模式
目前暂不支持drive_input方式,需要结合调用自定义脚本使用
drive_input的使用限制详见 驱动输入使用限制。
以浏览器访问某网银,需要完成网银登录为例,即如下窗口中自动输入用户密码

编码开发模式
from rpa.core import *
from rpa.utils import *
import rpa4 as rpa
def start():
wnd = rpa.ui.win32.catch('您的网银登录窗口名称',mode='title',pattern='equal')
wnd.drive_input("密码输入框","1234abcd")可视化开发模式

“调用自定义脚本”组件内容如下
v_win_obj_1.drive_input("密码输入框", "1234abcd")使用快捷键
对软件窗口的操作中,常见2种情况会使用到快捷键
使用快捷键简化输入过程(如在文本输入框中完成输入后使用回车提交),示例可参考 使用CV模式操作钉钉客户端发送消息。
软件窗口的某些操作无法被控件识别到(如菜单栏中的某些菜单项),同时软件支持的快捷键操作又能够完成此项操作,推荐使用快捷键。示例可参考 使用快捷键操作软件。
提供input_hotkey和send_key两种方式对软件窗口的快捷键操作,使用建议如下
实现方式 | 运行效果 | 适用场景 |
input_hotkey | 效果一致 |
|
send_key |
|
利用系统剪贴板进行输入
适用场景
快速输入内容。一般会比前文介绍的input_text、drive_input等操作方式快1倍以上
自动化操作过程中,前面步骤使用了被操作界面提供的复制功能(如界面中提供复制按钮),后续步骤可直接使用粘贴(对应快捷键ctrl+v)完成输入
使用限制
原理:可简单理解为使用Windows系统的复制(对应快捷键ctrl+c)+粘贴(对应快捷键ctrl+v)功能
注意事项
警告由于依赖系统的剪贴板功能,可能会出现与用户或软件在此Windows上主机的复制操作冲突的情况,例如自动化流程中需要输入123、但在自动化流程执行粘贴动作前,人在电脑上执行了ctrl+c,剪贴板内容变成了456,导致自动化流程贴入了456。
不建议使用在有人干预的模式下,如本地型机器人的客户端人工执行(客户端手动执行)
在服务型机器人中使用时,需要无影云电脑策略中关闭剪贴板(机器人运行环境标准化),避免用户使用无影云电脑终端程序接入时,因为终端所在主机的剪贴板内容与云电脑相通,造成机器人填写内容的错误
使用方式
浏览器操作
编码开发模式
以操作Chrome为例
from rpa.core import * from rpa.utils import * import rpa4 as rpa # 使用V4引擎 import pyperclip # RPA客户端已经内置此python库 def start(): page = rpa.app.chrome.create("目标操作的网页地址") text_content = "abc123" # input是页面中的一个文本输入框的控件名 # 对文本框进行覆盖输入,先清理文本框中的已有内容 # 如果客户端版本号<4.10.3.1033,使用page.clear_input("input") page.clear_input_simulated("input") # 将待输入内容复制到剪贴板中 pyperclip.copy(text_content) # 使用快捷键ctrl+v将剪贴板内容粘贴此文本框内 page.input_hotkeys("input", "VK_CONTROL|V")可视化开发模式
可使用如下组件
可视化组件
适用操作方式
原理说明
推荐优先使用
向指定控件的文本区域输入内容
可简单理解为组合使用了的复制(即快捷键ctrl+c)和粘贴(即快捷键ctrl+v)
向指定控件的文本区域粘贴内容
需要自动化流程中的前面步骤先完成复制操作(即快捷键ctrl+c)
可简单理解为只粘贴(即快捷键ctrl+v)
向当前光标位置粘贴内容,该组件不依赖控件
需要自动化流程中的前面步骤先完成复制操作(即快捷键ctrl+c)、并完成光标定位(如点击鼠标)
可简单理解为只粘贴(即快捷键ctrl+v)
软件窗口操作
编码开发模式
以Windows的记事本操作为例
from rpa.core import * from rpa.utils import * import rpa4 as rpa # 使用V4引擎 import pyperclip # RPA客户端已经内置此python库 def start(): wnd = rpa.ui.win32.catch("记事本", mode="substr") # 激活窗口到最顶层显示 wnd.activate() text_content = "abc123" # 将待输入内容复制到剪贴板中 pyperclip.copy(text_content) # nodepad-input抓取出来的窗口控件,对应记事本的输入区域 # 使用快捷键ctrl+v将剪贴板内容粘贴输入区域中 wnd.input_hotkeys("nodepad-input", "VK_CONTROL|v")可视化开发模式
可使用如下组件
可视化组件
适用操作方式
原理说明
推荐优先使用
向指定控件的文本区域输入内容
可简单理解为组合使用了的复制(即快捷键ctrl+c)和粘贴(即快捷键ctrl+v)
向指定控件的文本区域粘贴内容
需要自动化流程中的前面步骤先完成复制操作(即快捷键ctrl+c)
可简单理解为只粘贴(即快捷键ctrl+v)
向当前光标位置粘贴内容,该组件不依赖控件
需要自动化流程中的前面步骤先完成复制操作(即快捷键ctrl+c)、并完成光标定位(如点击鼠标)
可简单理解为只粘贴(即快捷键ctrl+v)