【问题标题】:SAP GUI scripting - Button press failsSAP GUI 脚本 - 按钮按下失败
【发布时间】:2019-09-26 11:48:49
【问题描述】:

我在运行 SAP GUI 的 Excel 文件中使用宏。有一个步骤,当我单击 SAP 中的一个按钮时,会弹出另一个窗口。

为此,我编写了这样的代码:

session.findbyid("wnd[0]/XX/btnXX").press
session.findbyid("wnd[1]/XX/btnXXX").press

窗口 (wnd[1]) 中有一个按钮 (btnXXX)。但是当我执行这个查询时,我得到了一个错误对象,找不到findbyid

当我保留断点并执行它时,它会在上面代码的第二行抛出错误。我尝试选择activewindow.name,它仍然显示wnd[0]。这里的问题是wnd[1] 没有打开。

有人知道为什么第二次“按钮按下”不起作用吗?

【问题讨论】:

  • 这是一个非 SAPGUI 弹出窗口吗?什么生成 SAP GUI 记录器?您能解释一下您使用/展示哪些屏幕吗?
  • 这是一个 SAP GUI 弹出窗口。 Recorder 还生成 wnd[1]
  • 请添加屏幕截图,这是必不可少的。目前我发现几乎不可能提供帮助。此外,您能否创建一个minimal reproducible example 并将其粘贴到此处。
  • 我有同样的错误。像交易栏这样简单的东西对按下检查按钮没有响应,但如果我按下回车就会起作用。想知道你是否能够解决这个问题。

标签: vba sap-gui


【解决方案1】:

您应该能够用键盘敲击替换所有鼠标点击。

替换:

session.findbyid("wnd[0]/XX/btnXX").press

与:

session.findById("wnd[0]").sendVKey(N)

其中 N 是链接的热键 ID。

要获得准确的命令,请使用 SAP 脚本录制,并且仅使用键盘在视图和窗口之间进行转换。确定如何使用的最简单方法是将鼠标悬停在您通常单击以了解热键的按钮上,然后记录热键。

注 1)到目前为止,我发现 btn[XX] 总是映射到 sendVKey(XX),但我不能确定总是这样。

注意 2) sendVKey 总是出现在窗口之外 (wnd[Y]) 的引用,即使按钮位于另一层下方(/tbar、/usr 等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2022-10-19
    • 1970-01-01
    • 2016-01-16
    • 2020-01-23
    • 1970-01-01
    • 2018-11-23
    相关资源
    最近更新 更多