键盘输入使用技巧

更新时间:
复制 MD 格式

自动化流程中经常需要在目标界面中准确、快速地输入一些信息或数据,RPA提供了多种自动化操作的原子能力,本文介绍在操作浏览器、操作软件客户端两类场景下的常见操作方式、以及如何选择合适的方式进行输入。

浏览器操作

说明

本章节以操作Chrome浏览器为例,如需对其他类型的浏览器自动化操作,可以查找对应的编码开发的SDK方法、或可视化开发组件的帮助文档。

输入文本

编码开发模式

  • 客户端版本号 >= 4.10.3.1033

    • 建议使用 input_text_simulated,可满足绝大部分使用需要

    • 如果您对输入速度有要求,可尝试如下两种方法:

  • 低版本客户端

可视化开发模式

输入密码

网页中的密码输入框,一般可分为两类

  • HTML,即常见的密码输入框,比如阿里云的登录页面

  • 安全控件,最常见的是网银登录,参考 软件窗口操作

使用快捷键

  • 操作网页时使用到快捷键,例如在搜索框中输入内容后、直接使用回车完成提交动作。可参考 input_hotkey用法和虚拟键码清单

  • 如果需要操作浏览器软件本身,比如使用Chrome的开发工具的某些功能,需要将Chrome作为软件窗口进行操作,详见 使用快捷键

软件窗口操作

说明

本章节以操作Windows窗口为例进行介绍

输入文本

输入密码

需要使用drive_input方式,完成密码输入。

重要

drive_input的使用限制详见 驱动输入使用限制

以浏览器访问某网银,需要完成网银登录为例,即如下窗口中自动输入用户密码

3

编码开发模式

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")

可视化开发模式

image

“调用自定义脚本”组件内容如下

v_win_obj_1.drive_input("密码输入框", "1234abcd")

使用快捷键

对软件窗口的操作中,常见2种情况会使用到快捷键

  • 使用快捷键简化输入过程(如在文本输入框中完成输入后使用回车提交),示例可参考 使用CV模式操作钉钉客户端发送消息

  • 软件窗口的某些操作无法被控件识别到(如菜单栏中的某些菜单项),同时软件支持的快捷键操作又能够完成此项操作,推荐使用快捷键。示例可参考 使用快捷键操作软件

提供input_hotkeysend_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