UiPath Documentation
studio
latest
false
重要 :
新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

Studio 用户指南

上次更新日期 2026年4月15日

创建对象存储库

重要提示:

在启用了新式设计体验的项目中,对象存储库可与 UiPath.UIAutomation.ActivitiesMobileAutomation.Activities 包版本 20.10 及更高版本配合使用。

对象存储库是按应用程序、版本和屏幕分组的元素的集合,这些元素可以来自:

  • 本地项目,即本地资源库。
  • 库,即当前项目的用户界面库依赖项。

可以通过以下方式创建本地存储库:

  • 使用“捕获元素”记录器捕获用户界面描述符;
  • 手动创建,即直接在“对象存储库”面板中创建应用程序、屏幕和元素。

用户界面库可以通过以下方式创建:

  • 将本地存储库从任何项目中提取到库项目中,并将其作为 NuGet 包发布。
  • 从新建库开始,在那里建立存储库,然后将其作为 NuGet 包发布。 然后,您可以使用用户界面库 NuGet 包并将它们作为依赖项添加到您的流程中。
    重要提示:

    “捕获元素”记录器仅记录对象以供在项目中重用,该记录器不会在“设计器”面板中生成工作流。

通过捕获元素创建存储库

在库或进程中,单击“对象存储库”中的“捕获元素”按钮 docs image,以打开“捕获元素”录制器。

文档图像

单击“开始记录”docs image,开始捕获元素。 捕获元素记录器使用 UIAutomation.Activities 包版本 20.10 及更高版本中提供的统一目标技术,以一定程度的准确性捕获每个选取器、图像或锚点的目标和锚点。

文档图像

捕获的用户界面元素带有“选取器”、“模糊选取器”和“图像”属性,同时可确保一定的准确度。您可以选择只保留一个或保留所有目标元素。同样的方法也适用于与应用程序中的每个用户界面元素相关联的锚点元素。

在记录器中,您可以:

  • 单击“添加应用程序”或“添加屏幕”,以添加新应用程序或屏幕。
  • 单击“暂停”即可随时暂停录制文档图像。要继续录制,请单击录制文档图像再次获取。
  • 管理记录的元素:
    • 通过在左侧面板中选择屏幕或元素并在右侧的“属性”面板中进行编辑,更新屏幕或元素的属性。
    • 通过将元素拖放到左侧面板中来重新排列和分组元素。
    • 高亮显示您已捕获的元素,即可在“捕获元素”窗口中将鼠标悬停在元素名称上方时,使用 文档图像 按钮轻松将其识别出来。
    • 暂停录制时:
      • 通过右键单击元素并选择“删除”,以删除元素。
      • 右键单击现有元素,然后选择“创建元素”,以创建新元素作为屏幕或元素的子元素。
    • (可选)单击“设置”文档图像,然后选择是要配置每个元素还是要自动应用更改(默认情况下,两个设置都启用)。
  • 单击“将对象保存到库”文档图像 以保存更改,关闭记录器并返回到您的项目。

捕获所有元素

您可以使用“计算机视觉”技术,通过“捕获所有元素”功能来捕获应用程序的所有可用元素,并将这些元素添加到“对象存储库”中。此方法适用于自动化高度依赖“对象存储库”使用的场景,因为您不再需要手动添加所有用户界面元素,从而节省创建流程的时间。

  1. 单击“捕获元素”向导中的“捕获所有元素”按钮。系统将提示您指定包含要添加到“对象存储库”的元素的窗口。您还可以通过单击并拖动要从中捕获元素的区域的矩形来仅选择目标应用程序的区域。
  2. 指示应用程序检测所有元素,并将其以绿色突出显示。 您还可以手动取消选择您不想添加到对象存储库的元素。 在“扫描向导”窗口中,您可以使用相应的按钮选择“全选”“取消全选”。如果选择“捕获文本”复选框,则也会捕获文本元素。 选择完成后,点击“捕获”将关闭扫描向导,并返回到“捕获元素”窗口。 如果存在未识别的元素,您可以通过向 UiPath 发送图像以进行分析,帮助我们改进检测。单击“报告问题”,选择包含未识别元素的区域,然后选择“发送”
    备注:

    此功能要求您已配置计算机视觉服务器才能使用。有多种方法可以实现此目的,如下所示:

描述符属性

应从“捕获元素”记录器中为应用程序、屏幕和元素提供描述性名称,使其在“对象存储库”中易于识别。

元素类型

应用程序中的选取器可以表示按钮、复选框、文本字段、切换选项、列表框,以及可与机器人交互的任何类型的元素。可以从“捕获元素”记录器中定义捕获的元素。

从“类型”下拉列表中搜索并选取适合每个元素的类型。在“对象存储库”中,该元素会收到特定于其类型的图标,从而使对象更加容易区分。

文档图像

捕获元素后,单击“将对象保存到库”按钮,将对象添加到“对象存储库”中。 若要添加其他元素,请右键单击存储库中的屏幕或元素,然后选择“创建元素”。要添加其他屏幕,只需右键单击应用程序,选择“创建屏幕”即可。

文档图像

使用现有应用程序和屏幕的捕获元素

如果您在捕获所有所需元素之前退出录制器,或者您希望使用“捕获元素”为已添加到对象存储库的应用程序或屏幕添加或修改元素,则可以在该应用程序或屏幕上下文中随时启动录制器:

  1. 右键单击“项目 UI 描述符”下的任何应用程序或屏幕,然后选择“捕获元素”。这将在该应用程序或屏幕的上下文中打开“捕获元素”窗口:
    • 如果您选择了应用程序,该应用程序下的所有屏幕和元素都会预填充在捕获元素中。
    • 如果选择了屏幕,则屏幕下的所有元素都会预填充在捕获元素中。
  2. 根据需要更新屏幕和元素。您可以添加新屏幕,开始录制以添加新元素,编辑或删除现有屏幕或元素。如果对现有屏幕和元素进行更改,则保存时所做的更改将应用于对象存储库中的描述符。
  3. 单击“将对象保存到库”文档图像 以保存更改,关闭记录器并返回到您的项目。

从“对象存储库”面板创建存储库

您可以通过手动定义应用程序、每个屏幕和元素,在“对象存储库”面板中创建自己的存储库。

创建用户界面应用程序

在“对象存储库”面板中,单击“描述符”选项卡中的加号,或右键单击同一选项卡中的“项目描述符”,然后选择“创建应用程序”。“创建应用程序”窗口随即打开:

文档图像

添加唯一的应用程序名称、版本和说明。单击“创建应用程序”。您的应用程序在“项目用户界面描述符”下的“描述符”选项卡中可见。

创建屏幕

在“描述符”选项卡中,选择您的应用程序,单击加号或右键单击您的应用程序,然后选择“创建屏幕”。“添加屏幕”窗口随即打开:

文档图像

为屏幕添加唯一名称和说明。指示要自动化的屏幕,并使用“统一目标”编辑捕获的元素:

  • 如果需要,请更改应用程序路径。
  • 添加应用程序参数。 完成后,单击“创建屏幕”

创建用户界面元素

在“描述符”选项卡中,选择您的应用程序屏幕,单击加号或右键单击该屏幕,然后选择“创建元素”。“添加元素”窗口随即打开:

文档图像

从“描述符类型”部分单击“指定元素”,以使用“统一目标”从屏幕中指定和捕获元素。

在“元素名称”字段中添加一个直观名称,然后从“类型”下的下拉列表中选择元素的类型。完成后单击“保存”

文档图像

备注:
  • 要编辑对象存储库中的元素,请右键单击它,然后选择“编辑元素”,或双击树中的元素。
  • 要编辑元素的描述符,请使用“编辑描述符”窗口中的“编辑描述符”选项,或右键单击树中的元素,然后选择“编辑描述符”

使用对象存储库与录制器

如果在您的 Studio 实例中强制执行对象存储库(按照“关于对象存储库”页面中的说明),则在使用“应用程序/网页录制器”时,生成的活动不会自动引用存储库中的描述符。

在活动级别,内容丰富的工具提示会通知您将描述符添加到对象存储库或使用现有的描述符。

文档图像

为此,请单击活动内的图标,然后按照添加或重用描述符的步骤进行操作,或选择“选项”docs image >“添加到对象存储库”,将元素添加到对象存储库中。

文档图像

将活动中的元素添加到存储库

创建对象存储库后,可以直接从“设计器”面板添加更多用户界面元素。

在“设计器”面板中添加支持选取器的活动,如“单击”或“输入信息”。确保添加的活动位于“使用应用程序/浏览器”活动中。

在活动主体中,单击“对象存储库”图标以打开“选取选项”窗口。捕获元素,选择“确认”,“将元素添加到对象存储库”窗口随即会打开。向元素添加名称,然后单击“保存”。请注意,该元素将添加到“对象存储库”面板中。

文档图像

在当前项目中使用对象

从“对象存储库”中,将屏幕或元素拖放到工作流中的活动之上。对象的图像、参数和其他详细信息将自动添加到活动中。当活动使用对象存储库中的屏幕或元素时,单击活动中的“对象存储库”图标将高亮显示其在“对象存储库”树中使用的描述符。

重要提示:

如果您的工作流已连接到版本控制系统(例如 Git),则从版本控制的角度来看,对对象存储库中的对象进行的任何更新仅在“对象存储库”面板中显示为“已修改”。所有使用已更新对象的工作流都会在运行时自动引用修改后的内容(例如,选取器或任何定位方法),确保无缝操作已更新对象。但是,在您手动打开并保存每个工作流之前,从对象存储库继承的某些属性(例如屏幕截图或其他与活动相关的信息属性)不会在工作流文件中更新。此手动更新是将设计时更改反映在版本控制系统中的必需操作,但它不会影响 Runtime 行为或功能,因为工作流仍使用更新的对象内容。该限制仅影响版本控制,因为某些活动属性嵌入在工作流文件中,并且不会自动刷新。

在下面的示例中,我们将 MyAppScreen 对象拖动到“使用应用程序/浏览器”活动之上。应用程序路径将自动添加到活动中。

文档图像

或者,将一个对象拖放到工作流内加号的顶部。如果拖放屏幕,则会自动添加“使用应用程序/浏览器”活动。如果拖放元素,则会显示兼容活动的列表。选择所需的活动,对象将自动添加。在流程内部,活动获得以下标签:活动名称+对象名称。添加对象后,活动从对象存储库接收描述符属性,相关属性在活动的“属性”面板中可见。

  • To indicate or edit the descriptor from the activity, select Options文档图像, and then Indicate target on screen or Edit Target. A dialog is displayed informing you that the action is performed on the descriptor in the Object Repository. Confirm your choice by selecting Indicate Descriptorand Edit Descriptor respectively. Note that, when using the Compact Design Experience setting, you can indicate the target directly from the activity card and you can select items from the Object Repository.

  • 要仅指定或编辑当前活动的描述符,您必须首先通过选择“选项”docs image,然后选择“从对象存储库中取消链接”,来删除活动与对象存储库之间的链接。请注意,当强制执行对象存储库时,取消链接会从活动中删除目标。

    文档图像

将对象添加到工作流后,“对象存储库”面板中的“用户界面活动”选项卡将按层级顺序显示活动及其包含的对象。如果它们不可见,请保存项目并再次查看。

标记工作流:

  • 如果工作流文件中至少有一个活动从“对象”面板中引用了用户界面描述符,则使用灰色圆点进行标记。
  • 如果工作流中的所有活动都引用了“对象”面板中的用户界面描述符,则使用蓝色圆点进行标记;

标记用户界面活动:

  • 如果活动未从“对象”面板中引用用户界面描述符,则使用空心圆点进行标记。
  • 如果活动从“对象”面板中引用了用户界面描述符,则使用蓝色圆点进行标记。

通过 UIAutomation 使用编码自动化中的对象

使用用户界面自动化的编码自动化 API 时,可使用两种主要方法访问用户界面元素:

  1. 以字符串形式调用用户界面元素。
  2. 使用“对象存储库”中的 IElementDescriptors
1. 以字符串形式调用用户界面元素
  1. 在项目的对象存储库中创建一个名为 MyApplication 的应用程序。
    1. 为名为 MainScreen 的应用程序创建一个屏幕。
    2. 创建名为 HomePageIcon 的元素。
  2. 为屏幕创建一个变量。
  3. 使用 Open 编码自动化 API 通过以下代码打开屏幕:
    var screen = uiAutomation.Open("MainScreen");
    var screen = uiAutomation.Open("MainScreen");
    

要查找 ObjectRepository 命名空间和 Descriptors,请按键盘上的 CTRL + space。4. 使用以下代码,在用户界面元素上使用“点击编码”自动化 API:

screen.Click("HomePageIcon");
screen.Click("HomePageIcon");
2. 以 IElementDescriptor 的形式调用用户界面元素

调用对象时,请使用以下格式:IElementDescriptors: ObjectRepository.Descriptors.<ApplicationName>.<ScreenName>.<UiElementName>,其中 ObjectRepository 是集成了 Descriptors 类的命名空间。Descriptors 类进一步包含您在对象存储库中捕获的所有用户界面元素。

备注:

建议不要在对象存储库中使用Object作为应用程序的名称。

  1. 在项目的对象存储库中创建一个名为 MyApplication 的应用程序。
    1. 为名为 MainScreen 的应用程序创建一个屏幕。
    2. 创建名为 HomePageIcon 的元素。
  2. 为了增强可读性,您可以在工作流开头应用 using 语句,将应用程序定义为变量。示例如下:using app = <ProjectName>.ObjectRepository.Descriptors.<AppName>

通过此方法,您可以轻松地以以下格式调用描述符:app.<ScreenName>.<UiElementName>3. 为屏幕创建变量。 4. 使用“打开编码自动化 API”,使用以下代码打开屏幕:

var screen = uiAutomation.Open(ObjectRepository.Descriptors.MyApplication.MainScreen);
var screen = uiAutomation.Open(ObjectRepository.Descriptors.MyApplication.MainScreen);

要查找 ObjectRepository 命名空间和 Descriptors,请按键盘上的 CTRL + space。5. 使用以下代码,在用户界面元素上使用“点击编码”自动化 API:

screen.Click(ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
screen.Click(ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);

文档图像 6.如要使用导入的库项目中的对象存储库元素,请执行以下步骤:

  1. 在您从中导出库的项目中,新建编码测试用例或编码工作流文件。
  2. UiPath.CodedWorkflows 包更新到最新版本。
  3. 在要使用已导入对象存储库元素的文件中,使用以下格式在“命名空间”部分引用您从中导出元素的项目:<ProjectName> = <LibraryName>.ObjectRepository.Descriptors
  4. 使用编码自动化 API (例如 Click 或 Open)时,使用以下格式调用用户界面元素:
    screen.Click(<LibraryName>.ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
    screen.Click(<LibraryName>.ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
    

将编码自动化中的对象与移动自动化一起使用

使用移动自动化的编码自动化 API 时,可使用两种主要方法通过对象存储库访问用户界面元素:

  1. 使用 ObjectRepository 命名空间和 Descriptors 类中的 IScreenDescriptorsIElementDescriptors
  2. 使用对象存储库中相对于屏幕的路径。如果您有多个应用程序或多个屏幕,则必须在方法调用中加以指定。
1. 使用描述符类中的 IElementDescriptor

调用对象时,请使用以下格式:IElementDescriptors: ObjectRepository.Descriptors.<ApplicationName>.<ScreenName>.<UiElementName>,其中 ObjectRepository 是集成了 Descriptors 类的命名空间。Descriptors 类进一步包含您在对象存储库中捕获的所有用户界面元素。

备注:

建议不要在对象存储库中使用Object作为应用程序的名称。

  1. 在项目的对象存储库中创建一个名为 MyApplication 的应用程序。
    1. 为名为 HomeScreen 的应用程序创建一个屏幕。
    2. 创建名为 ParentElement 的元素。
    3. ParentElement 下创建名为 ChildElement 的嵌套式元素。
  2. 为了增强可读性,您可以在工作流开头应用 using 语句,将应用程序定义为变量。示例如下:using app = <ProjectName>.ObjectRepository.Descriptors.<AppName>

通过此方法,您可以轻松地以以下格式调用描述符:app.<ScreenName>.<UiElementName>3. 在移动设备与对象存储库中记录的应用程序之间创建连接。4. 使用以下代码在连接上调用 Tap 编码自动化 API,以单击 ChildElement 元素:

connection.Tap(Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
connection.Tap(Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);

要查找 ObjectRepository 命名空间和 Descriptors 类,请按键盘上的 CTRL + space。5. 通过以下代码,对 ParentElement 使用 GetAttribute 编码自动化 API:

var isChecked = connection.GetAttribute(Descriptors.MyApplication.HomeScreen.ParentElement, Attributes.Android.CHECKED);
var isChecked = connection.GetAttribute(Descriptors.MyApplication.HomeScreen.ParentElement, Attributes.Android.CHECKED);
  1. 如果要使用导入的库项目中的对象存储库元素,请执行以下步骤:
    1. 在您从中导出库的项目中,新建编码测试用例或编码工作流文件。
    2. UiPath.CodedWorkflows 包更新到最新版本。
    3. 在要使用已导入对象存储库元素的文件中,使用以下格式在“命名空间”部分引用您从中导出元素的项目:<ProjectName> = <LibraryName>.ObjectRepository.Descriptors
    4. 使用编码自动化 API 时,请使用以下格式调用用户界面元素:
      connection.Tap(<LibraryName>.ObjectRepository.Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
      connection.Tap(<LibraryName>.ObjectRepository.Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
      
2. 使用对象存储库中相对于屏幕的路径

通过使用对象存储库中相对于屏幕的路径,您可以使用 Strings 来访问对象存储库元素。路径是移动设备屏幕上表示元素层次结构的字符串。您还可以访问任何描述符,即使存储库中存在重名描述符也无妨,因为您可以为每个元素指定目标应用程序和屏幕。

这些目标由 MobileTarget.FromObjectRepository 构造函数创建而成,该构造函数接受用户界面元素相对于所用屏幕和应用程序的路径。此构造函数的返回值为 ObjectRepositoryTarget

可通过两种方法指定对象存储库中用户界面元素的路径:

  1. 使用 Strings,以“parentOfparent///parent///child”等格式排列为父子关系。

例如,请参阅以下代码,该代码会点击名为 ChildElement 的移动目标元素,该元素是 ParentElement 的子元素,位于当前应用程序的当前屏幕上。

connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChilElement"));
connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChilElement"));

再举一个例子,但这次代码会点击相同的 CheckedOnlyCheckBox 元素,但现在位于不同应用程序 (anotherApp) 的不同屏幕 (anotherScreen) 上。

connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChildElement", "anotherApp", "anotherScreen");
connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChildElement", "anotherApp", "anotherScreen");
  1. 按照父子关系,以 ["parentOfParent", "parent", "child"] 这类格式排列的 Strings 数组。

例如,请参阅以下代码,其会点击相同的用户界面元素,但会将路径输入到数组内所排列的单独字符串中。

connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}));
connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}));

当您要为方法调用指定不同的屏幕或应用程序时,可以使用相同的示例。

connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}, "anotherApp", "anotherScreen"));
connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}, "anotherApp", "anotherScreen"));

编辑描述符

元素描述符

可以在两种模式下从“对象存储库”中编辑描述符,我们将这两种模式称为“在线”和“离线”编辑:

  • 在线编辑 - 应用程序或浏览器可以在当前计算机上访问。应用程序/浏览器显示在屏幕上,允许再次选择或修改元素。
  • 离线编辑 - 当前计算机上无法访问应用程序或浏览器。应用程序未安装,或者计算机处于离线状态。元素的选取器可见,允许进行更改。
    备注:

    可以使用 文档图像 按钮直接在“用户界面探测器”中编辑“描述符”中的“选取器”和“模糊选取器”。

在线编辑

在“描述符”选项卡中,右键单击某个元素,然后选择“编辑描述符”。选取屏幕随即打开,您可在此屏幕中捕获其他元素、编辑选取器和锚点。

文档图像

单击“编辑元素”窗口中的“编辑描述符”按钮可以实现相同的效果。

文档图像

备注:

在运行时,如果活动引用此类“用户界面描述符”,则从“对象存储库”面板解析“用户界面描述符”。

离线编辑

在线编辑中的相同步骤也适用于此处。在“描述符”选项卡中,右键单击一个元素,然后选择“编辑描述符”。

离线编辑提供直接对元素描述符设置进行更改的选项,但您不能指定新元素。为此,请确保应用程序/浏览器以正确的状态打开。

文档图像

屏幕描述符

要编辑屏幕描述符,请在“描述符”选项卡中,右键单击屏幕,然后选择“编辑描述符”。系统将显示“编辑屏幕”窗口。

文档图像

您可以编辑应用程序路径或浏览器 URL、应用程序参数和窗口选取器,并选择是否只能在自动化中使用标题完全匹配的应用程序。应用程序路径、浏览器 URL 和应用程序参数字段支持表达式和、变量和参数。

解析用户界面描述符

每当在“项目用户界面描述符”或“用户界面库”下指定已在“对象存储库”中引用的屏幕或“用户界面元素”时,系统都将自动检测匹配项,并弹出以下窗口:

文档图像

可用的选项如下:

  • 重用 - 将“对象存储库”中的匹配描述符添加到当前活动。
  • 新建 - 打开选项窗口以创建新屏幕/元素或更新“对象存储库”中的现有屏幕/元素。
  • 取消 - 将当前指定的选取器保留在活动内,而不对存储库中的对象进行任何更改。

指示屏幕搜索相应的用户界面描述符,同时指示目标元素搜索匹配的用户界面描述符。使用“录制器”时,系统将在项目用户界面描述符的本地用户界面库中或从用户界面库导入的依赖项中搜索屏幕和元素的相应匹配项。

备注:

在运行时,如果活动引用此类“用户界面描述符”,则从“对象浏览器”面板解析“用户界面描述符”。

描述符中的变量

为了提高其可重用性,可以在描述符中使用变量。

您可以编辑目标,向其中添加变量,然后将其添加到对象存储库,或者可以将变量添加到现有屏幕或对象存储库中元素中的选取器。每当将包含变量的描述符添加到流程时,请确保在流程中创建变量,否则无法读取表达式。

要将变量添加到描述符选取器,请右键单击“对象存储库”中的元素,然后选择“编辑描述符”,然后从“选择选项”窗口中添加变量。

选取器中添加的变量必须用双大括号括起来。例如,如下图所示,<name='{{VarNumber}}'/> 将变量 VarNumber 的值添加到选取器中的 name 属性。

文档图像

在下面的示例中,我们在“使用应用程序/浏览器”活动的“浏览器 URL”字段内使用了一个变量,然后将该目标作为屏幕对象添加到对象存储库中。这样,我们确保描述符说明了 URL 更改的情况。

文档图像

高亮显示元素

在“对象存储库”面板中,右键单击屏幕或元素,然后选择“高亮显示”以突出显示应用程序内的元素,前提是应用程序在计算机上启动或浏览器中已打开网页。

文档图像

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新