当您使用记录器软件包记录用户界面 (UI) 控件时,将捕获一组属性;这些属性用于在运行时识别和交互记录的 UI 控件。

您使用记录器捕获的控件称为对象。 当记录器捕获一个对象时,它将捕获可用于识别对象的所有可能的属性。 选定的属性用作“搜索条件”,在运行时从目标应用程序中搜索和查找控件。

在机器人执行期间,记录器会遍历目标应用程序控制树,并选择与保存属性(也称为搜索条件)匹配的控件。

默认情况下,记录器会根据技术为记录的控件选择最佳的搜索条件。 但是,机器人在尝试查找先前记录的 UI 控件时可能会遇到问题。 造成这种失败的常见原因包括但不限于以下几点:

  • 动态属性: 如果捕获元素的属性在每次会话或页面加载时发生变化,并且搜索条件包含任何动态属性,机器人可能会在运行时失败。
  • 频繁的 UI 更改: 如果目标应用程序频繁更新并更改 UI,且记录的 UI 控件的属性发生变化,机器人在尝试识别记录控件时可能会遇到问题。
  • 具有重复属性的控件: 如果有多个具有相同属性的控件,可能会导致意外结果或机器人无法识别控件。

在这种情况下,如果您的机器人仅依赖于记录器捕获的默认搜索条件,可能会很难识别捕获的控件。 只要没有其他对象符合搜索条件,或者对象本身没有定期更新,捕获的搜索条件就能始终如一地工作。 因此,在记录 UI 控件之后,您必须考虑这些因素,并尝试配置搜索条件,以帮助您的机器人在机器人执行时明确识别记录的控件。

HTML 技术的搜索和验证属性

搜索条件是搜索对象属性和验证属性的组合。

搜索对象属性: 这些属性用于从 HTML 页面定位对象。 以下属性用于搜索对象。
  • HTML 类
  • HTML ID
  • HTML 名称
  • HTML FrameSrc
  • HTML 标签
  • HTML 类型
  • HTML 内部文本
  • HTML FramePath
  • DOMXPath
  • Path
  • HTML HasFrame
  • FrameDOMXPath
验证属性: 只有在找到对象后才会对这些属性进行验证。 以下属性用于验证。
  • HTML 类
  • HTML 高度
  • HTML Href
  • HTML ID
  • HTML Left
  • HTML 名称
  • HTML Parent
  • HTML SourceIndex
  • HTML 标签
  • HTML 标题
  • HTML Top
  • HTML 类型
  • HTML 值
  • HTML 宽度
  • HTML 内部文本
  • InnerHTML
  • OuterHTML
  • IsVisible

动态属性和使用自定义搜索条件的示例

假设您尝试记录的 web 页面的某些属性在每次会话时都会更改。 纳入更改的属性将导致机器人无法识别控件。 例如,请查看以下视频中显示的示例登录页面。 登录按钮的 ID 属性在每次加载页面时都会改变。

当您在页面上记录登录按钮时,记录器会将 ID 捕获为一个默认属性。


动态对象属性的示例

如果您在不更新搜索条件的情况下运行机器人,机器人在运行时会失败,因为登录按钮的 ID 会在每次加载页面时发生变化。

搜索条件错误

由于 ID 属性不断变化,机器人无法找到具有先前捕获 ID 的登录按钮,因此失败。 因此,此场景不合适使用 ID 属性。 清除 ID 属性并选择 innerHTML 属性即可轻松解决该问题,如以下视频所示。 如此,机器人将不再寻找 ID 为btn1696911842030-8845 的控件。 相反,它将依赖于 DOMXPathinnerHTML 属性组合明确识别控件。

在 HTML 中修改对象属性的注意事项

在使用记录器软件包捕获 UI 控件时,请考虑以下因素:
  • 如果您计划记录的网页具有动态属性,请从记录的对象属性中删掉。 相反,选择在运行时不会改变的属性。
  • 如果有多个具有相同属性的 UI 控件,请选择可以明确识别特定 UI 控件的属性。 例如,如果有多个按钮具有类型按钮,并且每个按钮的 innerHTML 文本(按钮标签)都不同,那么使用 innerHTML 作为属性之一将有助于在运行时识别控件。
  • 使用动态或相对 DOMXPath,以适应布局变化。 在布局发生变化或 UI 中添加了动态控件的情况下,避免使用静态 DOMXPath。
  • 如果属性值的某些字符是动态的,请使用通配符('*')。