标题5:什么是目标?
目标是一个用户界面元素,您希望通过与之交互来对其执行某些操作。
例如,要单击的按钮、要输入内容的文本框。在这里,按钮和文本框都是目标。
用户界面元素是指构建应用程序的所有图形用户界面部分。
用户界面元素可以是任何窗口、复选框、文本字段或下拉列表等。
机器人如何识别正确的目标?
定位方法有助于识别正确的目标元素。新式用户界面自动化活动使用多种定位方法来识别要与流程交互的用户界面元素。
关键的定位方法是:
- 选取器
- 模糊选取器
- 图像
- 原生文本
补充:
目标元素的属性、屏幕位置或图像可能会发生变化。为了提高精度,我们会使用锚点。
锚点可帮助我们识别需要使用的不稳定元素(相对于较稳定的元素而言)。
什么是锚点?哪种情况下应使用锚点?
锚点是另一个用户界面元素,可帮助以唯一方式识别目标。
- 当您使用新式用户界面自动化活动指定目标时,UiPath 会尝试识别并自动选择锚点。
- 您也可以手动向所需目标添加最多三个锚点。
选择窗口的“高级”选项
“选择选项”窗口提供:
“强制执行可见性”:可以使用启用时可见的用户界面元素。在运行时也仅考虑可见元素。
“动态文本目标”:针对定位元素的需求,而不考虑其特定内容.
它会更改属性以使其动态化,删除文本引用并禁用不兼容的定位方法。
“原生文本目标”:主要用于并非所有元素都可选的旧版应用程序。
启用后可以识别目标应用程序上可通过原生方法查看的所有文本标签。
“图像选择模式”:通过仅使用图像识别功能,
可在选取器和模糊选取器不可用的情况下识别用户界面元素。
键盘快捷方式: 暂停配置---F2 图像选择模式---F3 可悬停元素选择---F6
什么是统一目标?
统一目标是用于用户界面自动化的新式框架。
有许多技术或方法可以促进用户界面交互,例如选取器、模糊选取器、图像、文本、计算机视觉等。通过使用统一的框架,所有方法可以相互支持,以获得更高的**可靠性,**这样您就可以确保机器人能够在选择用户界面元素时克服由弱点造成的任何障碍。
此外,针对一组类似的活动使用单一框架的另一个优点是,您可以在整个工作流中将其用作开箱即用的解决方案。因为它很容易在后台运行,因此,您无需花时间配置和考虑所使用的每种方法的特殊性。
统一目标使用几个框架来识别用户界面元素。
用于微调描述符的统一目标的关键操作
统一定位方法使用“选取器”、“模糊选取器”和“图像”这三种定位方法来查找所需的用户界面元素。这三种定位方法互为多余,这意味着它们会尝试同时标识目标元素,然后使用首先找到目标的方法。
您可以根据应用程序用户界面或识别用户界面元素的条件,通过微调目标和锚点 选取器、模糊 选取器和图像来微调统一定位方法。
序列 (Sequence)、流程图 (Flowchart) 和状态机 (State Machine) 是三种不同的工作流设计模式,每种都有其特定的用途、优势和劣势,如下图:
特性 | 序列 (Sequence) | 流程图 (Flowchart) | 状态机 (State Machine) |
---|---|---|---|
结构 | 线性执行,一步接一步 | 图形化,包含分支和循环 | 基于状态和转换 |
复杂性 | 简单 | 中等 | 高 |
可读性 | 非常高 | 相对高 | 中等 |
适用场景 | 简单顺序操作 | 复杂决策、分支和循环 | 复杂交互、事件驱动、多状态切换 |
易于调试 | 非常容易 | 容易 | 相对复杂 |
学习难度 | 低 | 中等 | 高 |
适用性 | 小型自动化流程,简单操作 | 包含分支逻辑的流程 | 复杂交互式、事件驱动的流程,涉及多个状态转换的流程 |
如何选择:
- 简单流程: 如果你的流程只是简单的顺序操作,没有复杂的分支和循环,那么使用 序列 是最简单和高效的选择。
- 复杂决策: 如果你的流程包含条件判断、分支和循环,那么使用 流程图 更加灵活和适合。
- 复杂交互: 如果你的流程涉及多个状态、事件驱动或需要等待外部事件,那么使用 状态机 更加适合。
错误指的是特定程序在正常情况下无法处理的事件。根据引起错误的原因不同,可分为不同的错误类型 - 例如:
- 语法错误是指编译器/解释器无法将编写的代码解析为有意义的计算机指令;
- 用户错误是指软件出于某些原因无法接受用户的输入;
- 编程错误是指程序没有语法错误,但产生的结果不符合预期。这些错误通常称为 Bug。
异常指的是程序识别(捕获)、归类和处理的事件。更具体地说,若开发者配置了一个例程,当捕获到异常时,该例程将被激活。有时,处理机制可能只是停止执行。
有些异常与所使用的系统相关联,而另一些异常则与业务流程的逻辑相关联。
系统异常
下列是在使用 UiPath 开发的项目中可能经常会遇到的异常。
一般来说,所有这些异常都是从 System.Exception 派生的类型,因此,举例来讲,在“TryCatch”活动中使用此泛型类型可以捕获所有类型的错误。
空引用异常 - 使用未设置值(未初始化)的变量时,会发生此异常。索引超出范围异常 当对象的索引超出集合的限制时,会发生此异常。
参数异常 - 调用某种方法时,如果至少有一个传递的参数不符合被调用方法的参数规范时,会发生此异常。
找不到选取器异常 - 当机器人在超时期限内无法在目标应用程序中为活动找到指定的选取器时,会发生此异常。
图像操作异常 - 在超时期限内找不到图像时会发生此异常。
找不到文本异常 - 在超时期限内找不到指定文本时会发生此异常。
应用程序异常 - 描述根源于技术问题的错误,例如应用程序无响应。
系统异常(System Exception)和业务异常(Business Exception)是两种不同类型的错误或异常情况,它们在处理自动化流程时需要以不同的方式进行处理。理解它们之间的区别对于构建健壮的自动化流程至关重要。
主要区别总结:
特性 | 系统异常 (System Exception) | 业务异常 (Business Exception) |
---|---|---|
类型 | 技术性错误、环境问题、代码执行错误 | 业务逻辑错误、数据不符合业务规则 |
可预测性 | 通常不可预测 | 通常可预测 |
解决方式 | 技术修复、环境调整、代码修改 | 业务逻辑处理、数据校验、流程调整 |
是否中断流程 | 未处理会导致流程中断 | 通常不直接导致流程中断,需要根据业务逻辑处理 |
处理目的 | 保证流程的稳定性和可靠性 | 保证业务流程的正确性和完整性 |
影响范围 | 通常影响整个流程的执行 | 通常只影响当前流程或当前处理的数据 |
简单类比:
- 系统异常: 就像汽车抛锚,可能是发动机故障、轮胎爆胎等技术性问题,需要修理才能继续行驶。
- 业务异常: 就像开车遇到红灯,这是业务规则 (交通规则) 所规定的,你需要停下来等待,但并不意味着汽车坏了。
重要性:
- 区分处理: 区分系统异常和业务异常非常重要,因为它们需要使用不同的处理方法。
- 健壮性: 正确处理系统异常可以提高流程的稳定性和可靠性,避免因技术问题导致流程中断。
- 业务逻辑: 正确处理业务异常可以保证流程的业务逻辑正确,并根据业务规则做出适当的响应。
- 可维护性: 区分处理异常可以使流程代码更清晰、更容易维护和扩展。
全局异常处理程序
全局异常处理程序是一种工作流,用于在项目意外遇到异常时确定流程的行为。因此,每个自动化项目只能设置一个全局异常处理程序。
在默认配置中,全局处理程序会在运行时捕获流程中任何活动引发的异常,并执行设计时预定义的标准响应 - 忽略、重试、中止或继续。对于有人值守的场景,可以将其配置为让用户选择操作。
要创建全局异常处理程序时,可以通过添加此类型的新工作流文件来创建,也可以通过在“项目”面板中将现有工作流设置为“全局异常处理程序”来创建。