前言:【【非原创】】UiPath Advanced RPA Developer Certification Training的课程资料机翻版。
课程链接:Link
文章目录
模块概述
到目前为止,我们已经探索了 UI 自动化的关键概念以及如何利用 Studio 中的现代体验开发自动化。是时候了解经典体验如何运作了。
您将在本模块中学到什么
在本单元结束时,您应该能够:
- 选择适合您的自动化上下文的输入法。
- 自定义输入操作的属性以提高自动化的可靠性和有效性。
- 使用适合您正在自动化的应用程序和流程的细节的输出操作。
- 通过使用最合适的活动来识别 UI 元素,最大限度地提高自动化的可靠性。
注意 1:
UI 自动化提供了一个框架,用于使用用户界面自动执行人工操作。但是,可以通过使用在 API 级别工作的活动包或使用特定于数据操作的技术来构建 UiPath 中的工作流的应用程序和文件类型(例如 Excel)很多。与通用 UI 自动化相比,这些是可取的,因为它们更容易构建且更可靠。
注 2:
本课程是使用 UiPath Studio 2020.10 创建的。其他企业版或社区版中的某些元素可能有所不同。
2 Learn
2.1 Input Methods and Activities
每次我们向应用程序插入数据,或者向系统发送命令以产生更改(或延续)时,我们都会使用输入活动。在 UiPath 中,主要的输入活动是点击、键入、发送热键和悬停。这些也是人类用户将数据输入到应用程序时执行的主要操作。
输入法
输入方法是为输入活动提供输入数据方式的属性。输入法决定了进程在后台运行并与应用程序 UI 交互时的速度。
单击和键入操作共有三种输入法:
- 模拟类型/点击/悬停 Simulate Type/Click/Hover
- 发送窗口消息 SendWindowMessages
- 硬件事件 Hardware Events
默认情况下,应用“Hardware Events”方法。但是,我们可以根据所选活动的兼容性和功能,随时从属性面板更改方法。
2.1.1 硬件事件 Hardware Events
- 它是如何工作的?
单击:鼠标光标在屏幕上移动。
键入:键盘驱动程序用于键入单个字符。 - 有什么影响?
在自动化过程中,有人值守的用户不能触摸鼠标或键盘。
它的速度较低,加载时间会影响准确性。 - 有哪些强项?
支持特殊键,如“Enter”、“Tab”和其他热键。
100% 兼容性。 - 有哪些限制?
它将无法自动擦除以前写入的文本。
它不会在后台工作。
2.1.2 发送窗口消息 Send Window Messages
- 它是如何工作的?
重放使用鼠标/键盘时目标应用程序接收到的窗口消息。
单击和键入会立即发生。 - 有什么影响?
在后台工作。
在速度方面与默认方法(Hardware Events )相当。 - 有哪些强项?
支持特殊键,如“Enter”、“Tab”和其他热键
用户可以在执行自动化流程期间处理其他活动 - 有哪些限制?
它将无法自动擦除以前写入的文本。
仅适用于响应窗口消息的应用程序。
2.1.3 模拟 Simulate
- 它是如何工作的?
使用目标应用程序的技术(API 级别)发送指令。
单击和键入会立即发生。 - 有什么影响?
在后台工作。
动作要快得多,但有一些兼容性限制。 - 有哪些强项?
将自动擦除以前写入的文本。
用户可以在执行自动化流程期间处理其他活动。 - 有哪些限制?
不支持“Enter”、“Tab”等特殊键和其他热键
兼容性低于其他两种方法
2.1.5 三种输入方式总结
工作方式 | 单击 | 键入 | 后台工作 | 速度 | 强项 | 限制 | |
---|---|---|---|---|---|---|---|
Hardware Events | 鼠标光标在屏幕上移动;键盘驱动程序用于键入单个字符。 | - | - | 有人值守的用户不能触摸鼠标或键盘。 | 较低 | 支持特殊键,如“Enter”、“Tab”和其他热键;100% 兼容性。 | 它将无法自动擦除以前写入的文本;它不会在后台工作。 |
Send Window Messages | 重放使用鼠标/键盘时目标应用程序接收到的窗口消息 | 立即发生 | 立即发生 | 是 | 较低 | 支持特殊键,如“Enter”、“Tab”和其他热键;用户可以在执行自动化流程期间处理其他活动 | 它将无法自动擦除以前写入的文本;仅适用于响应窗口消息的应用程序。 |
Simulate | 使用目标应用程序的技术(API 级别)发送指令。 | 立即发生 | 立即发生 | 是 | 最快 | 将自动擦除以前写入的文本;用户可以在执行自动化流程期间处理其他活动。 | 不支持“Enter”、“Tab”等特殊键和其他热键;兼容性低于其他两种方法 |
2.1.5 输入活动属性 Input activities
单击、键入和发送热键就其主要功能而言很简单。
所有输入操作共享几个属性:
- 延迟:这可用于设置点击之前或之后的延迟。
- WaitForReady:可以配置为通过验证某些应用程序标签来等待目标准备就绪。
让我们看看每个选项提供的选项:
- 点击 Click
- ClickType:可以是 single 或 double (将默认值更改为 double 使其非常类似于单独的活动 - 双击)。
- MouseButton:可以配置为左键、中键或右键。
- 超时:指定重试活动直到抛出错误的持续时间。
- KeyModifiers:可以在执行操作时按下 Alt、Ctrl、Shift 和/或 Win 键。
您可以在此处了解有关 Click 活动及其属性的更多信息。
- 输入 Type into
- 激活:输入文本的字段在输入之前被带到前台并激活。
- ClickBeforeTyping:输入文本的 UI 元素将在输入之前被点击。
- DelayBetweenKeys:键入每个键之间的延迟。
- EmptyField:在输入之前将清空 UI 元素。
您可以在此处找到有关 Type into 活动及其属性的更多信息。
要输入受保护的字段,例如“密码”,有一个更合适的活动 - 输入安全文本。您可以在此处找到有关它及其属性的更多信息。
- 发送热键 Send hotkey
- 激活:输入文本的字段在输入之前被带到前台并激活。
- ClickBeforeTyping:输入文本的 UI 元素将在输入之前被点击。
- DelayBetweenKeys:键入每个键之间的延迟。
- EmptyField:在输入之前将清空 UI 元素。
您可以在此处找到有关“发送热键”活动及其属性的更多信息。
最佳做法 - 输入活动和方法:
按 F2 暂停 UI Explorer 3 秒钟。这非常方便,例如,当您需要在屏幕上指示悬停时出现的元素时。
仅在容器内使用发送热键活动,以避免将它们发送到意外的地方。
2.2 输出方法和活动 Output Methods and Activities
输出活动用于从 UI 元素中提取数据(通常为文本)。输出方法是输出活动背后的技术,它支持从 UI 元素中提取数据。
让我们了解更多关于 UI 交互中使用的输出方法。
2.2.1 Output methods
共有三种输出方式:
- FullText
- Native
- OCR
FULLTEXT | NATIVE | OCR | |
---|---|---|---|
默认方法和兼容性 | 这是默认方法,在大多数情况下已经足够好了。 | 与使用图形设计界面 (GDI) 的应用程序兼容,Microsoft API 用于表示图形对象。 | OCR(或光学字符识别)是唯一适用于虚拟环境和从图像“读取”文本的输出方法。它的技术依赖于识别每个字符及其位置。 |
自动化速度 | 最快 | 次快 | 最慢 |
精确性 | 100% | 在支持 GDI 的应用程序上 100% 准确。 | 准确度因文本而异。通过更改设置,我们可以改善结果。 |
在后台运行 | 是 | 否 | 否 |
隐藏文本 | 可以提取隐藏文本(例如,下拉列表中的选项)。 | 可以提取隐藏文本(例如,下拉列表中的选项)。 | 无法提取隐藏文本。 |
虚拟环境 | 不支持 | 不支持 | 适用于虚拟环境和从图像“读取”文本。 |
文本位置和格式 | 不捕获文本位置和格式。 | 可以提取文本位置和格式(包括文本颜色) | 与 Native 方法一样,它也捕获文本位置。 |
其他 | 该方法提供了忽略隐藏消息并仅捕获可见文本的选项。 | 默认情况下,它可以将所有已知字符作为分隔符(逗号、空格等)处理,但是当仅指定某些分隔符时,它可以忽略所有其他分隔符。 | OCR 方法有两个可以交替使用的默认引擎:谷歌正方体,微软MODI。还有其他 OCR 引擎可以免费安装(例如 Omnipage 和 Abbyy Embedded)或付费安装(Abbyy 提供的 IntelligentOCR)。 |
您可以通过访问 Screen Scraping 向导在所有这些方法之间切换,一旦您指定要从中提取文本的区域并启动预览窗口。
现在是了解有关输出活动的更多信息的时候了。
2.2.2 输出活动 Output activities
在深入研究它们中的每一个之前,让我们了解它们与输入活动和方法有何不同。
每个输入动作都可以使用所有输入方法,其中所有输出活动都与输出方法有些匹配。例如:“获取 OCR 文本活动”,顾名思义,它仅适用于 OCR 方法。
以下是最重要和最常用的输出操作。
- 获取文本活动 Get Text Activity
从指定的 UI 元素中提取文本值。Link - 获取全文活动 Get Full Text Activity
使用 ==FullText ==屏幕抓取方法从指示的 UI 元素中提取字符串及其信息。因此,默认情况下也会捕获隐藏文本(尽管它提供了忽略隐藏文本的选项)。当使用 FullText 方法和容器执行屏幕抓取时,会自动生成此活动。Link - 获取可见文本活动 Get Visible Text Activity
使用本机屏幕抓取方法从指示的 UI 元素中提取字符串及其信息。当使用所选的本机方法和容器执行屏幕抓取时,会自动生成此活动。Linlk - 获取 OCR 文本活动 Get OCR Text Activity
使用 OCR 屏幕抓取方法从指示的 UI 元素中提取字符串及其信息。此活动也可以在执行屏幕抓取时与容器一起自动生成。默认情况下,使用 Tesseract OCR 引擎。Link - 数据抓取向导 Data Scraping Wizard
数据抓取是 UiPath Studio 的一项功能,它允许将结构化信息从应用程序、浏览器或文档提取到== DataTable ==变量。该功能可以直接从 UiPath Studio 的设计功能区“数据抓取”按钮访问。
选择的第一个元素用于填充第一列,并且还提供了提取 URL(如果存在这些元素)的选项。用户可以更改列的顺序并指定要提取的最大条目数(默认为 100,保留 0 表示提取所有结果)。在预览阶段,“提取相关数据”选项可用于提取其他数据字段,通过指示第一个和第二个条目,就像主字段一样。Link - 提取属性活动 Extract Attributes Activities
这实际上是一类活动,当您不想从 UI 元素中提取文本,而是提取是颜色、位置或祖先时,可以使用它。有 3 种不同的 UiPath 活动可以执行此操作:
1)Get Ancestor:UI 元素采用父子结构(文本文档将记事本应用程序作为父项,将应用程序类别作为父项,依此类推)。 Get Ancestor 检索 UI 元素的祖先(或父元素)。
2)Get Attribute:UI 元素有很多属性。想想网站上的按钮——它肯定有颜色、名称、状态等。 Get Attribute 允许用户指明一个属性,然后活动检索该特定属性的值。
3)Get Position:此活动检索特定元素在屏幕上的实际位置。当屏幕上有许多相似的元素时,这会非常有用;如果没有他们的实际位置,就很难确定他们每个人的身份。Link
2.2.3 视频演示 - 从记事本文件中获取文本
从预定义的文本文件中获取文本。
2.2.4 视频演示 - 屏幕抓取和数据转换
使用所有输出方法从应用程序中抓取数据以促进比较。
让我们举个例子。所有 Google 搜索结果都具有相同的结构、顶部的标题、URL 字符串和网页描述。
这种结构使 Studio 可以轻松提取信息。数据抓取向导输出一个提取结构化数据活动,该活动返回一个数据表。
现在让我们开发一个工作流,该工作流将在 Google 中搜索数据抓取视频并抓取前 100 个结果的标题、URL 和上传日期,并输出包含此信息的 CSV 文件。
2.2.5 视频演示 - OCR 方法
使用 OCR 方法从应用程序中检索数据。
2.3 UI元素同步 UI Element Synchronization
2.3.1 什么是 UI 元素同步?
UI 同步帮助我们通过特定的活动来处理 UI 自动化场景中遇到的复杂情况。
我什么时候可以使用 UI 同步活动?
输入和输出动作可以被视为连续的 2 个微步骤:
首先,识别 UI 元素,然后输入(或提取)数据。
在许多情况下,包括我们在之前课程中介绍的大多数示例,第一步很容易通过将其包含在活动中或使用延迟选项来分类。这就是为什么在许多情况下,一项活动就足够了。
然而,在某些业务场景中,构建可靠的工作流意味着适应 UI 元素仅在不同时间移动或变得可见的情况。此外,一些看起来很方便的解决方案,例如在执行 Click 活动之前设置大延迟,可能会导致自动化的整体持续时间显着增加(例如,如果有 50 个 Click 活动)。使用同步活动可以克服这些情况。
让我们看看这些是什么。
UI同步活动
有几个操作旨在定位 UI 元素,了解每个操作何时有用很重要:
-
查找元素 Find Element
等待指定的 UI 元素出现在屏幕上(在前台)并将其作为 UiElement 变量返回。当需要对找到的 Ui 元素执行特定操作时,这很有用。Link -
元素存在 Element Exists
使您能够验证 UI 元素是否存在,即使它不可见。它返回一个布尔变量,这使得它在“If 语句”活动中非常有用。Link -
等待元素消失 Wait Element Vanish
等待指定的 UI 元素从屏幕上消失。它是 Find Element 的替代品。例如:当一个元素(加载标志)的消失比另一个元素的出现更可靠时。Link -
在元素出现 On Element Appear
等待 UI 元素出现并允许您在其中执行多个操作的容器。Link -
在元素消失时 On Element Vanish
使您能够在指定的 UI 元素消失后执行一个或多个操作的容器。Link -
判断文本是否存在 Text Exists
检查是否在给定的 UI 元素中找到文本。还有一个替代版本,它使用 OCR 技术来检查给定的 UI 元素。当 UI 元素除图像外不可访问时,这很有用。Link
2.3.2 视频演示 - UI 同步
让我们观看此视频演示以了解如何使用 UI 同步活动。
对于一些关键要点:
- UI Synchronization activities有助于处理 UI 自动化场景中遇到的复杂情况。
- On Element Appear 是一个容器,它等待 UI 元素出现并使我们能够在其中执行多个操作。
- Element Exists 使我们能够验证 UI 元素是否存在,即使它不可见。它的输出是一个布尔变量。
- Pick 和 Pick branch让我们定义事件触发器并配置处理它们的方法。
2.4 人工智能计算机视觉 The AI Computer Vision
UiPath AI 计算机视觉是一种 AI 技能,它使 UiPath 机器人能够查看和理解计算机屏幕上的每个元素。
AI 计算机视觉活动包包含重构的基本 UI 自动化活动,例如单击、键入或获取文本。计算机视觉活动与其他活动之间的主要区别在于计算机视觉神经网络的使用。
神经网络能够在不使用选择器的情况下识别 UI 元素,例如按钮、文本输入字段或复选框。
让我们了解有关计算机视觉功能及其活动的更多信息。
- 计算机视觉活动如何运作?
直观地识别所有元素,而不是依赖选择器或图像。
实现对用户界面的类人识别。
结合使用自定义屏幕 OCR、文本匹配和多锚点系统。 - 我什么时候可以使用计算机视觉活动?
自动化虚拟桌面环境(Citrix、VMware、VNC 和 Windows 远程桌面)。
在生成器不可靠或不可用的情况下自动化本地应用程序。 - 我在哪里可以找到计算机视觉活动?
通过 UI 自动化活动包轻松访问。
可以使用 AI 计算机视觉轻松识别所有屏幕元素和标签的拖放活动。
3 练习 Practice
3.1 Practice 1 - Input Actions and Methods
将数据输入记事本
创建一个执行以下记事本自动化的序列:
- 要求用户输入要键入的文本。
- 询问用户保存文件的标题。
- 打开记事本。
- 键入用户的文本。
- 将字体样式更改为粗体,将其大小更改为 16。
- 导航到另存为以使用用户的标题保存文件。
- 关闭记事本
实践1解决方案
将项目作为序列启动并使用“输入对话框”活动。将文本存储在字符串变量(‘text’)中; - 使用另一个“输入对话框”活动来获取用户对文件名称的输入。将文本存储在字符串变量中(‘文件名’);
- 使用“打开应用程序”容器打开记事本。在容器中:
- 使用“键入”活动将数据写入记事本的“文本”变量中;
- 使用“点击”活动点击菜单中的“格式”按钮。为“字体”按钮使用另一个“点击”活动。
- 使用“附加窗口”容器并指明“字体”窗口已打开。在容器中:
- 使用“键入”活动在“字体样式”下键入“粗体”;
- 使用另一个“键入”活动在“字体大小”下键入“16”;
- 使用“发送热键”活动点击“Enter”关闭“字体”窗口;
- 使用“发送热键”活动来保存 - Ctrl + S;
- 当将打开一个新窗口要求输入文件名时,使用“键入”活动在“文件名”变量中键入数据;
- 使用“发送热键”活动点击“回车”关闭“保存”窗口;
- 使用“关闭应用程序”活动关闭记事本应用程序。
流程图
3.2 Practice 2 - Output Actions and Methods
使用 Google 查找天气
创建一个使用 Google 查找特定城市天气的机器人。感兴趣的城市由用户介绍。
实践2解决方案
- 以序列的形式启动项目,并使用“输入对话框”活动让用户输入城市名称。将城市名称存储在新创建的字符串变量(‘city’)中;
- 使用“打开浏览器”容器打开 Internet Explorer 并导航到 Google.com 页面。容器内部:
- 使用“输入”活动在搜索栏中的“城市”变量中写入“天气 +”数据;
- 使用“发送热键”活动点击“Enter”并开始搜索;
- 使用“查找元素”活动检查 Google 徽标是否出现。将结果存储在新创建的 UiElement 类型变量中;
- 使用“If 语句”检查 Google 徽标是否出现(以及搜索是否成功)。条件可以是“isNothing(googleLogoElement)”;
- 如果条件为真(搜索不成功),则使用“日志消息”来保留错误消息;
- 如果条件为假:
- 使用“获取全文”活动通过在屏幕上指示温度来检索温度。使用新创建的变量来存储温度;
- 使用“记录消息”活动记录包含城市名称和温度的消息;
- 使用“关闭标签”活动。
流程图
3.3 Data Scraping
从 ACME 中提取数据
创建一个从 ACME 工作项页面自动提取数据的流程。
- 使用 IE 打开 https://acme-test.uipath.com/login 并登录(注意:如果您没有帐户,请先到 https://acme-test.uipath.com/register 并创建一个)。
- 单击工作项选项卡。
- 使用数据抓取向导从所有页面中提取表格。忽略空列。
- 将提取的数据保存到 CSV 文件中。
- 关闭浏览器。
实践3解决方案 - 以序列的形式启动项目并提供注释。
- 定义一个字符串变量并将其命名为“AcmeUrl”,默认值为“https://acme-test.uipath.com/login”。
- 定义一个名为“Email”的字符串变量和一个名为“Password”的 SecureString 变量。电子邮件的默认值是您用于登录 acme-test 的电子邮件。密码的默认值为“new System.Net.NetworkCredential(string.Empty, “”).SecurePassword”。
- 使用“打开浏览器”活动,对于 URL 属性,使用在步骤 1 中创建的变量。检查属性中的私有选项。此选项将以隐身模式打开浏览器,因此不会保存您的凭据。容器内部:
拖放“最大化窗口”活动; - 使用“键入”活动输入存储在电子邮件变量中的电子邮件。检查 SimulateType 选项。
- 使用“发送热键”活动按回车键。
- 使用“键入安全文本”活动输入存储在密码变量中的密码。检查 SimulateType 选项。
- 使用“发送热键”活动按回车键。
- 使用“元素存在”活动来确保在运行时加载页面,然后再继续执行后续步骤。使用“在屏幕上指明”并指明左侧的“工作项”选项卡。转到“属性”->“存在”并按 Ctrl+K;创建一个名为 TabExists 的变量,然后按 Enter。此外,在属性中,将超时值设置为较低的值,例如 5000。
- 拖放“If”活动并在条件文本框中写入 TabExists。
在 Then 分支上: - 使用“单击”活动按下左侧菜单上的“工作项”选项卡。
- 点击 UiPath Studio 中的数据抓取按钮,以便使用向导从此页面中提取数据。
指明第一个元素的 WIID,然后在向导窗口中点击下一步。在最大结果数文本框中写入 0(提取所有行),然后单击完成。表示“Abbyy – Flexiccapture 连接器”。然后您可以配置列:选中 Extract Url 并重命名列:“Title”(而不是第 1 列)和“URL”(而不是第 2 列)。 - 当弹出询问数据是否跨越多个页面的提示时,按是并在 ACME 页面上指示“下一步”按钮。
- 检查属性中的 SimulateClick 选项并设置较低的超时 - 例如,3000。
- 拖放“Write CSV”活动,配置文件名(“AcmeWorkItems.csv”)和数据表名称(“ExtractDataTable”)。
在 else 分支上,拖放 Log Message 活动并编写一条消息,指出登录失败。 - 拖放“关闭选项卡”活动,保存并运行工作流。
4 Learning Resources
4.1 输入活动和方法
Input Methods-UiPath Studio Guide
Click - UiPath Activities Guide
Type into - UiPath Activities Guide
Type secure text - UiPath Activities Guide
Send hotkey - UiPath Activities Guide
4.2 输出活动和方法
Output Methods - UiPath Studio Guide
Get Text - UiPath Activities Guide
Get Full Text - UiPath Activities Guide
Get Visible Text - UiPath Activities Guide
Get OCR Text - UiPath Activities Guide
Data Scraping - UiPath Studio Guide
Get Ancestor - UiPath Activities Guide
Get Attribute - UiPath Activities Guide
Get Position - UiPath Activities Guide
4.3 UI元素同步
Find Element - UiPath Activities Guide
Element Exists - UiPath Activities Guide
Wait Element Vanish - UiPath Activities Guide
On Element Appear - UiPath Activities Guide
On Element Vanish - UiPath Activities Guide
Text Exists - UiPath Activities Guide
5 参与 UiPath 社区
UiPath 论坛:RPA 开发人员基础培训 - 反馈空间
UiPath 论坛:UI 自动化主题
6 Check Your Understanding
Q:RPA 实施的步骤是什么?
Prepare RPA / Solution Design / Build RPA / Test RPA / Stabilize RPA / Constant improvement
(准备 RPA / 解决方案设计 / 构建 RPA / 测试 RPA / 稳定 RPA / 不断改进)