【问题标题】:SAP GUI automation using Blueprism. The text box id is getting changed frequently. So not able to spy the text box使用 Blueprism 的 SAP GUI 自动化。文本框 id 经常更改。所以无法窥探文本框
【发布时间】:2018-12-17 16:02:21
【问题描述】:

我正在尝试使用 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_OTHERS:%_ T000KW:0200/ctxt/COCKPIT/SHDR_DISP-RPA").text = ""

此处突出显示的值“T000KW”将经常变化。谁能帮我解决这个问题。

【问题讨论】:

标签: blueprism


【解决方案1】:

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. 与正则表达式相同: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/ 组件的子列表(肯定带有代码阶段,但甚至可能带有读取阶段) - 从而检测变化的部分。有了这些信息,您可以为您的元素设置动态匹配模式,并根据该信息计算 ID。
  2. 使用代码阶段而不是应用程序模型与 SAP 交互(这是我通常做的)。在那里,您可以通过获取不变元素的直接子元素并计算元素的 ID 来模拟上述 (1.3.) 方法。 SAP GUI object model's documentation 很不错。一旦我遇到了与您完全相同的问题,而这正是我实际解决的方法。

请注意,我正在家里写这个答案,目前没有访问 Blue Prism。或 SAP。

【讨论】:

  • 恐怕前三个解决方案都不起作用。使用 Blueprism SAP 模式时,您只能使用项目的确切 ID。不幸的是,第二个选择是唯一的选择
  • 伤心。正如我所写的,我只将 SAP 与代码阶段进行了交互——SAP 的记录器非常方便,而且通常只需很少的调整就可以成功。粗略的应用程序模型仍然有用,因为等待阶段看起来没有用代码复制它们那么糟糕。
【解决方案2】:

在这种情况下,我可能会尝试使用不同的间谍模式。你试过在这里使用它吗?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 2021-01-30
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    相关资源
    最近更新 更多