繁体   English   中英

使用Blueprism的SAP GUI自动化。 文本框ID经常更改。 因此无法监视文本框

[英]SAP GUI automation using Blueprism. The text box id is getting changed frequently. So not able to spy the text box

我正在尝试使用Blueprism自动化SAP屏幕之一。 文本框的ID经常更改。 因此无法监视文本框。

我使用SAP模式监视了元素。 由于文本框的ID正在动态更改(大约6小时),因此Blue Prism无法识别元素,并且该过程失败了。

ID为:session.findById(“ wnd [0] / usr / subSUB_MAIN:/ COCKPIT / SAPLDISPLAY46:0385 / subSUB_HDR:/ COCKPIT / SAPLDISPLAY46:0405 / tabsG_STRIP_HDR / tabpTAB5 / ssubSUB:/ COCKPIT / SAPLDISPLAY46:0436 / ssubSUB_HDR: T000KW :0200 / ctxt / COCKPIT / SHDR_DISP-RPA“)。text =”“

此处突出显示的值“ T000KW”将自由更改。 谁能帮我解决这个问题。

tl; dr:您可能应该获取并使用已更改的GuiComponent的ID。 在最坏的情况下,您可以检测到GuiComponent的父级并列出其子级ID。

有几种方法,其中一些最终可能会起作用:

  1. 在Application Modeller中进行监视时,默认情况下,属性的匹配模式设置为Equal。 有时放宽匹配条件会有所帮助。

    1. 尝试按通配符进行匹配,例如wnd[0]/usr/subSUB_MAIN:/COCKPIT/SAPLDISPLAY46:0385/subSUB_HDR:/COCKPIT/SAPLDISPLAY46:0405/tabsG_STRIP_HDR/tabpTAB5/ssubSUB:/COCKPIT/SAPLDISPLAY46:0436/ssubSUB_OTHERS:%_*:0200/ctxt/COCKPIT/SHDR_DISP-RPA
    2. 与Regex相同: wnd\\[0\\]/usr/subSUB_MAIN:/COCKPIT/SAPLDISPLAY46:0385/subSUB_HDR:/COCKPIT/SAPLDISPLAY46:0405/tabsG_STRIP_HDR/tabpTAB5/ssubSUB:/COCKPIT/SAPLDISPLAY46:0436/ssubSUB_OTHERS:%_.*:0200/ctxt/COCKPIT/SHDR_DISP-RPA
    3. 您可以获取wnd[0]/usr/subSUB_MAIN:/COCKPIT/SAPLDISPLAY46:0385/subSUB_HDR:/COCKPIT/SAPLDISPLAY46:0405/tabsG_STRIP_HDR/tabpTAB5/ssubSUB:/COCKPIT/SAPLDISPLAY46:0436/组件(肯定具有Code阶段,甚至可能具有Read阶段)-因此可以检测到更改的部分。 使用此信息,您可以为元素设置动态匹配模式,在该模式下,您将根据该信息来计算ID。
  2. 代替应用模型,使用代码阶段与SAP交互(这是我通常要做的)。 在那里,您可以通过获取不变的元素的直接子元素并计算元素的ID来模仿上述方法(1.3。)。 SAP GUI对象模型的文档非常不错。 一旦遇到与您完全相同的问题,这就是我实际解决问题的方式。

请注意,我正在家里写此答案,而当前没有访问Blue Prism。 或SAP。

在这种情况下,我可能会尝试使用其他间谍方式。 您尝试过在这里使用它吗?

另一个解决方案是按照BálintErdősi的建议将SAP API与代码阶段一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM