通过 menu().items() 可以获取当前级次下的菜单项,再通过 sub_menu() 判断是有下级菜单项,不断的递归,把所有的菜单项打印出来。
代码语言:javascript复制# -*- 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("文件->页面设置")
我以记事本来做个示例,效果图如下:
这是菜单栏操作的效果图演示,我打开的是页面设置: