为什么 UiPath 检测到的 ctrlid 格式与其 XSLT 表示中记录的格式不同?

Why does the ctrlid format detected by UiPath differs from the documented format in their XSLT representation?

为什么 UiPath Studio 检测到的 ctrlid 格式与其 XSLT 表示中记录的格式不同?

目前我正在使用 UiPath 来自动化一些工作流程。

环境详细信息:

在尝试识别 SAPTreeList / SAP's Advanced Treelist 中的元素时,UiPath 似乎检测到以下格式的 ctrlid

快照:

CtrlId in msdn.microsoft.com 的文档提到:

因此 UiPath Studio 检测到的 ctrlid 格式似乎与记录的格式和规范不同。

我是不是遗漏了什么?

根据 中的 Execution.log:

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"}

错误详细信息还包含以下字段:

所以我的问题是:

我将尝试就我如何理解这些问题提供一些答案:

  • 元素的 ctrlid 是否依赖于这些参数中的任何一个?

    UiPath 创建一个提供一些依赖项的选择器,这些依赖项并不总是最佳的,因为其中一些可能会在每次应用程序运行或另一个元素加载时动态变化。 所以是的,元素在创建时依赖于这些特定参数(当由 UiPath 指示时),但在执行期间这些可能会改变,导致选择器 'hung'

  • 每个系统的元素的ctrlid是唯一的吗?

    根据您的 link 到 CtrlId

  • ,每个系统都有一些 ctrlid 元素是唯一的

对于表单中的每个按钮控件和图片按钮控件,该属性的值应该是唯一的。

  • ctrlid 在同一个 jobId 中是动态的吗?

在其他情况下,ctrlid 的值可能是动态的。在这种情况下,根据您的示例图像(突出显示的值):

  1. UiPath 最佳实践建议在构建稳定的选择器时避免使用它们
  2. 但是如果你想使用它们,那么你需要使用通配符使这些动态(尝试'*')或者每次检索动态值并在选择器设置中使用它(尝试'+dynamicValue+' )
  3. 最后你总是需要测试你的选择器,通过反复试验你会改进你的解决方案。

希望您会发现这些信息有用。