Python驅動SAP GUI完成自動化(六)——驅動下拉框GuiComboBox

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

 

 

   我們今天就來好好認識下它。我們想要操縱一個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,如下圖所示:

  接着我們可以查看SAP GUI Scripting API手冊,瞭解其特性:1.2.12 GuiComboBox Object、1.2.14 GuiComboBoxEntry Object

 

 

 

 

 

   從上圖可以看到,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自動化!

 

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