Python 自动化-pywinauto遍历展示程序的所有菜单项,菜单栏menu_select()操作方法的使用

2021-12-01 14:39:29 浏览数 (1)

通过 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("文件->页面设置")

我以记事本来做个示例,效果图如下:

这是菜单栏操作的效果图演示,我打开的是页面设置:

0 人点赞