如何通过UiPath构建基于动态ctrlid的选择器?

How to construct a selector based on dynamic ctrlid through UiPath?

这个问题参考了以下问题:

我正在观看视频 SAP Automation with UiPath 以具有有效凭据的用户身份通过​​ SAP 客户端自动登录。

环境详细信息:

在视频之后,我有一个 Attach Window activity,其中包含以下两个活动:

Selector EditorUIExplorer识别的元素如下:

<wnd ctrlid='76836616' />
<wnd ctrlid='100' title='SAP&apos;s Advanced Treelist' />

<wnd ctrlid='76836616' />
<wnd ctrlid='5002' title='myContainer' />
<wnd ctrlid='1008' />
<ctrl name='SAP_IDES' role='list item' />

如您所见,ctrlid 对于两个元素都是相同的,但有些是动态的。然而,前几次处决是完美的。

在经过相当长的时间后尝试执行工作流时,问题开始出现。我遇到了一个错误:

Error {"message":"Click Text 'SAPTreeList': Cannot find the UI element corresponding to this selector: <wnd ctrlid='90279688' /><wnd ctrlid='100' title='SAP&apos;s Advanced Treelist' />","level":"Error","logType":"Default","timeStamp":"2019-02-06T13:16:44.295729+05:30","fingerprint":"bec67d2a-14d1-4b93-ac06-03156aea69fe","windowsIdentity":"AtechM-03\AtechM_03","machineName":"ATECHM-03","processName":"LearningUiPath","processVersion":"1.0.0.0","jobId":"e7f88d9e-e485-4eee-8a54-7450771238f3","robotName":"ATECHM_03","machineId":0,"fileName":"Main"}

因此从错误消息中可以清楚地看出 selector 不是有效的选择器。

使用 Selector EditorUI Explorer 我找到了 ctrlid'76836616' 变为 '79865432'。所以我尝试使用partial selector。观察到UiPath随机:

所以我的问题是如何适应 动态 ctrlid,它会不时变化并且是 UiPath 的强制选择器?

UI 路径有一个 anchor base activity 可以在没有可靠的选择器时使用。它是一个锚点容器和一个尝试通过使用其他 UI 元素作为锚点来定位您的 UI 元素的动作活动。您可以同时使用 find elementfind image 活动作为锚点。

例如,您可以将输入的标签用作输入的锚点,因为标签更改的可能性较小。

请记住,锚基活动 背景 中不起作用

您可以通过尝试完成此页面中的挑战来测试锚库的效率/可靠性activity。 http://www.rpachallenge.com/ 与您的情况一样,rpachallenge 页面上输入的名称和 ID 属性也会在每次提交时发生变化。