JT Tomato� 2019-10-12 17:22 采纳率: 20%
浏览 837
已采纳

Python 控制SAP时,无法通过引用SAP 代码对浮窗进行控制

各位高手大家好:

我尝试使用Python 控制SAP 完成一些常规操作:

根据网上的方法:使用 SAP 自带的 Record 功能。
图片说明
得到SAP 操作背后的代码,如下:

session.findById("wnd[0]/tbar[0]/okcd").text = "vk12"
    session.findById("wnd[0]").sendVKey (0)
    session.findById("wnd[0]/usr/ctxtRV13A-KSCHL").text = "YBC0"
    session.findById("wnd[0]/usr/ctxtRV13A-KSCHL").caretPosition = 4
    session.findById("wnd[0]").sendVKey (0)

    session.findById("wnd[1]/usr/sub:SAPLV14A:0100/radRV130-SELKZ[7,0]").select      # 目前 没有办法在这一步中实现功能,浮窗无法进行选择,之间跳进了浮窗中的第一个选项
    session.findById("wnd[1]/usr/sub:SAPLV14A:0100/radRV130-SELKZ[7,0]").setFocus    # 目前 没有办法在这一步中实现功能,浮窗无法进行选择,之间跳进了浮窗中的第一个选项
    session.findById("wnd[1]").sendVKey (0)
    session.findById("wnd[0]/usr/ctxtF001").text = "AU10"
    session.findById("wnd[0]/usr/ctxtF001").caretPosition = 4
    session.findById("wnd[0]/usr/btn%_F002_%_APP_%-VALU_PUSH").press
    session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,0]").text = number_pop

    session.findById("wnd[1]/tbar[0]/btn[8]").press
    session.findById("wnd[0]/tbar[1]/btn[8]").press
    session.findById("wnd[0]/usr/btnFCODE_MARL").press
    session.findById("wnd[0]/mbar/menu[0]/menu[5]/menu[0]").select
    session.findById("wnd[0]/mbar/menu[5]/menu[5]/menu[2]/menu[1]").select
    session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").select
    session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").setFocus
    session.findById("wnd[1]").sendVKey (0)
    session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "123.xls"
    session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 7
    session.findById("wnd[1]/tbar[0]/btn[0]").press

目前遇到了一个困难: 通过以上方法得到的代码没有办法对SAP 弹出的浮窗中的内容进行操作:

比如,对下图之中弹出的弹窗中的选项进行选择

图片说明

对弹窗进行选择的SAP代码如下。 但目前这两行代码并不能发挥功能

session.findById("wnd[1]/usr/sub:SAPLV14A:0100/radRV130-SELKZ[7,0]").select      # 目前 没有办法在这一步中实现功能,浮窗无法进行选择,之间跳进了浮窗中的第一个选项
session.findById("wnd[1]/usr/sub:SAPLV14A:0100/radRV130-SELKZ[7,0]").setFocus    # 目前 没有办法在这一步中实现功能,浮窗无法进行

请问各位有经验的高手,这种情况有没有解决的建议。

谢谢

  • 写回答

4条回答 默认 最新

  • 关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 9月14日

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题