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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章