通过 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("文件->页面设置")
我以记事本来做个示例,效果图如下:
这是菜单栏操作的效果图演示,我打开的是页面设置:
喜欢的点个赞❤吧!