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等自動化操作了 (→_→),趕緊動手驗證下~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM