为什么 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 来自动化一些工作流程。
环境详细信息:
SAP Client: IDES ECC 6.0 incl. EhP7
Host machine: Intel Core i3 CPU with 64 bit - Windows 8 system.
在尝试识别 SAPTreeList
/ SAP's Advanced Treelist
中的元素时,UiPath 似乎检测到以下格式的 ctrlid
:
<wnd ctrlid='74372104' />
<wnd ctrlid='59648' idx='1' />
<wnd ctrlid='59648' />
<wnd ctrlid='74937216' />
<wnd ctrlid='100' title='SAP's Advanced Treelist' />
快照:
CtrlId in msdn.microsoft.com 的文档提到:
The value of the CtrlId attribute MUST range from 1 through 255 characters, MUST begin with an alphabetic character, and MUST contain only alphanumeric and underscore characters.
The following W3C XML Schema (XMLSCHEMA1) fragment specifies the contents of this element.
<xsd:element name="CtrlId" type="xsd:string"/>
因此 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'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"}
错误详细信息还包含以下字段:
level
logType
timeStamp
fingerprint
windowsIdentity
machineName
processName
processVersion
jobId
robotName
machineId
fileName
所以我的问题是:
- 元素的
ctrlid
是否依赖于这些参数?
- 每个系统的元素
ctrlid
是唯一的吗?
ctrlid
在同一个jobId
中是动态的吗?
我将尝试就我如何理解这些问题提供一些答案:
元素的 ctrlid
是否依赖于这些参数中的任何一个?
UiPath 创建一个提供一些依赖项的选择器,这些依赖项并不总是最佳的,因为其中一些可能会在每次应用程序运行或另一个元素加载时动态变化。
所以是的,元素在创建时依赖于这些特定参数(当由 UiPath 指示时),但在执行期间这些可能会改变,导致选择器 'hung'
每个系统的元素的ctrlid
是唯一的吗?
根据您的 link 到 CtrlId
,每个系统都有一些 ctrlid
元素是唯一的
对于表单中的每个按钮控件和图片按钮控件,该属性的值应该是唯一的。
ctrlid
在同一个 jobId
中是动态的吗?
在其他情况下,ctrlid
的值可能是动态的。在这种情况下,根据您的示例图像(突出显示的值):
- UiPath 最佳实践建议在构建稳定的选择器时避免使用它们
- 但是如果你想使用它们,那么你需要使用通配符使这些动态(尝试'*')或者每次检索动态值并在选择器设置中使用它(尝试'+dynamicValue+' )
- 最后你总是需要测试你的选择器,通过反复试验你会改进你的解决方案。
希望您会发现这些信息有用。
为什么 UiPath Studio 检测到的 ctrlid
格式与其 XSLT 表示中记录的格式不同?
目前我正在使用 UiPath 来自动化一些工作流程。
环境详细信息:
SAP Client: IDES ECC 6.0 incl. EhP7
Host machine: Intel Core i3 CPU with 64 bit - Windows 8 system.
在尝试识别 SAPTreeList
/ SAP's Advanced Treelist
中的元素时,UiPath 似乎检测到以下格式的 ctrlid
:
<wnd ctrlid='74372104' />
<wnd ctrlid='59648' idx='1' />
<wnd ctrlid='59648' />
<wnd ctrlid='74937216' />
<wnd ctrlid='100' title='SAP's Advanced Treelist' />
快照:
CtrlId in msdn.microsoft.com 的文档提到:
The value of the CtrlId attribute MUST range from 1 through 255 characters, MUST begin with an alphabetic character, and MUST contain only alphanumeric and underscore characters.
The following W3C XML Schema (XMLSCHEMA1) fragment specifies the contents of this element.
<xsd:element name="CtrlId" type="xsd:string"/>
因此 UiPath Studio 检测到的 ctrlid 格式似乎与记录的格式和规范不同。
我是不是遗漏了什么?
根据
Error {"message":"Click Text 'SAPTreeList': Cannot find the UI element corresponding to this selector: <wnd ctrlid='90279688' /><wnd ctrlid='100' title='SAP'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"}
错误详细信息还包含以下字段:
level
logType
timeStamp
fingerprint
windowsIdentity
machineName
processName
processVersion
jobId
robotName
machineId
fileName
所以我的问题是:
- 元素的
ctrlid
是否依赖于这些参数? - 每个系统的元素
ctrlid
是唯一的吗? ctrlid
在同一个jobId
中是动态的吗?
我将尝试就我如何理解这些问题提供一些答案:
元素的
ctrlid
是否依赖于这些参数中的任何一个?UiPath 创建一个提供一些依赖项的选择器,这些依赖项并不总是最佳的,因为其中一些可能会在每次应用程序运行或另一个元素加载时动态变化。 所以是的,元素在创建时依赖于这些特定参数(当由 UiPath 指示时),但在执行期间这些可能会改变,导致选择器 'hung'
每个系统的元素的
ctrlid
是唯一的吗?根据您的 link 到 CtrlId
,每个系统都有一些
ctrlid
元素是唯一的
对于表单中的每个按钮控件和图片按钮控件,该属性的值应该是唯一的。
ctrlid
在同一个jobId
中是动态的吗?
在其他情况下,ctrlid
的值可能是动态的。在这种情况下,根据您的示例图像(突出显示的值):
- UiPath 最佳实践建议在构建稳定的选择器时避免使用它们
- 但是如果你想使用它们,那么你需要使用通配符使这些动态(尝试'*')或者每次检索动态值并在选择器设置中使用它(尝试'+dynamicValue+' )
- 最后你总是需要测试你的选择器,通过反复试验你会改进你的解决方案。
希望您会发现这些信息有用。