• Python驱动SAP GUI完成自动化(四)


      小爬最近为了提升自己的常见编程算法,以应对未来日趋复杂的业务场景需求,一直在刷LeetCode的Easy和Medium题,进度很慢,随便一道题都要思考再三,长路漫漫,以至于很长时间都没有更新自动化方面的文章了。不过最近工作中遇到这样一个场景,我们在利用Python驱动SAP GUI时,可能希望多开SAP窗口,实现多个页面同时作业,对自动化脚本进行加速。SAP中的Session就是我们认知中的一个SAP前端界面。通常我们用python连接SAP的脚本如下:

    import sys, win32com.client
    SapGuiAuto = win32com.client.GetObject("SAPGUI")
    application = SapGuiAuto.GetScriptingEngine
    connection = application.Children(0)
    session = connection.Children(0)

    倘若我们有多个页面,则可以用脚本计算得到它的窗口数,关闭其他一些session,仅保留一个session,下面是演示该功能的代码:

    sessionCnt = connection.Children.count # 获得该connection下到底多少个session
    for i in range(sessionCnt):
         if i>0:
            session=connection.Children(1) #随着session不停被close,剩余session的下标会前移,所以永远操作children1即可关闭多余的session
            session.findById("wnd[0]").close()
            session=None
    session=connection.Children(0)

    如果我们想创建多个session,则可以这样做:

    for i in range(n): #SAP最多能创建几个会话,是有物理限制的
        session.createSession()

    如果要同时操作4个session,可以尝试如下代码:

    session1=connection.Children(0)
    session2=connection.Children(1)
    session3=connection.Children(2)
    session4=connection.Children(3)

    然后我们就可以基于上面的每个session分别执行findById等自动化操作了 (→_→),赶紧动手验证下~

  • 相关阅读:
    oracle-DML-2
    Oracle--DML
    jquery 调用asp.net后台代码
    hdu--1505--稍微特别的子矩阵求和<修改第一次发表的错误>--<增加stack写法>
    hdu--2159--二维费用背包<一维错误解法>
    hdu--2571--dp
    hdu--1231&&1003--dp
    hdu--1251--字典树
    hdu--1075--字典树||map
    hdu--1421--dp&&滚动数组
  • 原文地址:https://www.cnblogs.com/new-june/p/13930237.html
Copyright © 2020-2023  润新知