天天看點

Python驅動SAP GUI完成自動化(六):驅動組合框GuiComboBox

  我們日常在對SAP GUI進行自動化的時候,經常需要操作ComboBox對象(下拉框)。如下圖所示:

Python驅動SAP GUI完成自動化(六):驅動組合框GuiComboBox
   我們今天就來好好認識下它。我們想要操縱一個SAP對象,首先得知道對象名,然後才能去查詢對應的SAP scripting API手冊,再進一步了解它的屬性和方法。利用SAP原生的錄屏功能,我們對下拉清單進行展開和選擇特定值,結束錄制後,就可以得到VBS腳本,腳本代碼可能是這樣的:

session.findById("wnd[0]/usr/tabsTABSTRIP_0100/tabpTABSTRIP_0100_FC4/ssubTABSTRIP_0100_SCA:SAPLEPIC_PROC:5000/cmbEPIC_BACO_QC_QUERY_SELECT-ZBUKR").key = "CNAA"      

  眼尖的童鞋,根據ID的最後一部分開頭“cmbEPIC_BACO_QC_QUERY_SELECT-ZBUKR”其實就能猜到它是一個comboBox對象,如果我們對此不夠确定,可以直接列印元素的type,如:

myTypeName = session.findById("wnd[0]/usr/tabsTABSTRIP_0100/tabpTABSTRIP_0100_FC4/ssubTABSTRIP_0100_SCA:SAPLEPIC_PROC:5000/cmbEPIC_BACO_QC_QUERY_SELECT-ZBUKR").Type
print(myTypeName)      
最後也能知道,該元素的type是GuiComboBox。當然,利用我前期博文中提到的Tracker工具,也能輕松知道元素的type,如下圖所示:      
Python驅動SAP GUI完成自動化(六):驅動組合框GuiComboBox
  接着我們可以檢視SAP GUI Scripting API手冊,了解其特性:1.2.12 GuiComboBox Object、1.2.14 GuiComboBoxEntry Object      
Python驅動SAP GUI完成自動化(六):驅動組合框GuiComboBox
Python驅動SAP GUI完成自動化(六):驅動組合框GuiComboBox

   從上圖可以看到,comboBox的下拉清單中每一個都是一個comboBoxEntry對象,它可以通過comboBox的Entries屬性拿到所有comboBoxEntry集合,然後基于索引來周遊它,每個comboBoxEntry又分别有key和value屬性,支援讀寫。有了這些,結合元素的count屬性,我們就可以輕松周遊到元素的每一個item的key和value,既可以讀取目前Key和Value,又可以直接對目前combobox的Key進行設定。見如下代碼示例:

companyEntryCollection = session.findById("wnd[0]/usr/tabsTABSTRIP_0100/tabpTABSTRIP_0100_FC4/ssubTABSTRIP_0100_SCA:SAPLEPIC_PROC:5000/cmbEPIC_BACO_QC_QUERY_SELECT-ZBUKR").Entries
companyEntryNum = companyEntryCollection.Count

# combobox下拉清單最後一行為空,索引從0開始
For i in range(0,companyEntryNum - 1):
    print(companyEntryCollection(i).Key,companyEntryCollection(i).Value)
   session.findById("wnd[0]/usr/tabsTABSTRIP_0100/tabpTABSTRIP_0100_FC4/ssubTABSTRIP_0100_SCA:SAPLEPIC_PROC:5000/cmbEPIC_BACO_QC_QUERY_SELECT-ZBUKR").Key = companyEntryCollection(i).Key '設定key
      

  各位小夥伴,每天掌握一個小技巧,從此用python輕松玩轉SAP GUI自動化!

快來掃碼關注我的公衆号 擷取更多爬蟲、資料分析的知識!

Python驅動SAP GUI完成自動化(六):驅動組合框GuiComboBox