飞道的博客

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

503人阅读  评论(0)

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

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



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

喜欢的点个赞❤吧!


转载:https://blog.csdn.net/qq_38161040/article/details/109055340
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场