Python 自動化-pywinauto遍歷展示程式的所有選單項,選單欄menu_select()操作方法的使用

2020-10-15 14:00:50

通過 menu().items() 可以獲取當前級次下的選單項,再通過 sub_menu() 判斷是有下級選單項,不斷的遞迴,把所有的選單項列印出來。

# -*- coding: UTF8 -*-
from pywinauto import Application
import psutil

def get_pid(name):
    '''
     作用:根據程序名獲取程序pid
     返回:返回匹配第一個程序的pid
    '''
    pids = psutil.process_iter()
    for pid in pids:
        if(pid.name() == name):
            return pid.pid
            
def list_menu(menu_item, space):
    '''
     作用:遞迴法遍歷選單 
    '''
    for i in menu_item.items():
        if(len(i.text()) > 0):
            print(space + i.text())
        if(i.sub_menu() != None):
            list_menu(i.sub_menu(), "    " + space)

app = Application().connect(process = get_pid("notepad.exe"))
win = app.window(title_re = "cmd.txt - 記事本")

list_menu(win.menu(), "")

# 選單欄操作
win.menu_select("檔案->頁面設定")

我以記事本來做個範例,效果圖如下:

在這裡插入圖片描述
在這裡插入圖片描述
這是選單欄操作的效果圖演示,我開啟的是頁面設定:
在這裡插入圖片描述
喜歡的點個贊❤吧!