为什么 UiPath Studio 检测到的ctrlid
格式与文档格式的 XSLT 表示形式不同?
当前,我正在使用UiPath来自动化一些工作流程。
环境详细信息:
SAP客户端:IDES ECC 6.0 incl。 EhP7
主机:具有64位的Intel Core i3 CPU-Windows 8系统。
在尝试标识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中msdn.microsoft.com的文档中提到:
CtrlId属性的值必须在1到255个字符之间,必须以字母字符开头,并且必须仅包含字母数字和下划线字符。
以下W3C XML架构(XMLSCHEMA1)片段指定了此元素的内容。
<xsd:element name="CtrlId" type="xsd:string"/>
因此 UiPath Studio 检测到的 ctrlid 格式似乎与记录的格式和规范不同。
我在这里想念东西吗?
根据this question中的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
中是动态的吗?答案 0 :(得分:3)
我将尝试提供一些有关我如何理解问题的答案:
元素的ctrlid
是否对这些参数有依赖性?
UiPath创建一个选择器,该选择器提供一些依赖关系,这些依赖关系并不总是最佳的,因为其中一些依赖关系可能在每次应用程序运行或加载另一个元素时动态变化。 因此,是的,在创建元素时(当由UiPath指示时)元素依赖于这些特定参数,但是在执行期间它们可能会改变,从而导致选择器“挂起”
ctrlid
是每个系统唯一的元素吗?
根据您与CtrlId的链接,某些ctrlid
元素对于每个系统来说都是唯一的
该属性的值对于表单中的每个按钮控件和图片按钮控件应该是唯一的。
ctrlid
在同一个jobId
中是动态的吗?在其他情况下,ctrlid
的值可能是动态的。在这种情况下,例如您的示例图片(突出显示的值):
希望您会发现这些信息很有用。