引言:
上一章节中,已经打开了菜单栏下的任意一个菜单,本章节我们将讲解怎么去操作其中一个菜单下的子菜单项 ,本章节中我们将继续学习 选择菜单栏中的一个菜单项
如图打开文件下的打开项
代码如下:
#启动应用程序
app = Application(backend='uia').start(path)
# 连接到Notepad++窗口
window = app["Notepad++"]
# 点击菜单下的文件
window['应用程序Menu'].child_window(title="文件(F)").click_input()
time.sleep(1)
#选择文件下的打开菜单 ,同理其他菜单也是如此打开
window.menu_select("文件(F)->打开(O)")
上述代码中menu_select()
是Pywinauto库中的一个方法,用于选择菜单栏中的一个菜单项。它的作用是模拟用户点击菜单项的操作。
menu_select()
方法的语法如下:
window.menu_select(menu_path)
其中,window
是窗口对象,可以是应用程序的主窗口对象或者子窗口对象。menu_path
是一个字符串,用于指定要选择的菜单项的路径。
menu_path
参数的格式是一个由菜单项名称组成的字符串,使用"->"分隔每个菜单项。例如,如果要选择文件菜单中的打开菜单项,可以使用""文件(F)->打开(O)"
。
调用menu_select()
方法后,Pywinauto会模拟用户点击相应的菜单项。这将触发相应的菜单项操作,例如打开一个文件、保存文件等。
需要注意的是,menu_select()
方法只能用于选择菜单栏中的菜单项。如果要选择弹出菜单中的菜单项,可以使用popup_menu()
方法。
总结一下,menu_select()
方法是Pywinauto库中的一个方法,用于选择菜单栏中的一个菜单项。它可以模拟用户点击菜单项的操作,触发相应的菜单项操作。
执行上述代码后打开新的文件夹框后,又该怎么操作呢?
举一个例子:点击打开(O)后出现的这个框。我们点击取消,当然也可以进行其他操作,这里只是举一个例子说明
当然还是可以使用Pywinauto 来继续进行下一步的,上一章节中我们已经讲述过怎么使用此工具获取控件信息,就不多讲述了,直接上代码。 记住这里的打开是新的窗口title,取消是打开窗口中的其中一个控件名,此窗口下的所有中文控件名都可以这样使用。
#连接到打开窗口,并点击取消按钮
app['打开']['取消'].click()
完整代码:
import time
import psutil
from pywinauto import Application
for process in psutil.process_iter():
try:
processinfo = process.as_dict(attrs=['pid', 'name'])
if processinfo['name'] == 'notepad++.exe':
process.kill()
except psutil.NoSuchProcess:
pass
path = r'C:\Program Files (x86)\Notepad++\notepad++.exe' #应用程序安装的路径
#启动应用程序
app = Application(backend='uia').start(path)
# 连接到Notepad++窗口
window = app["Notepad++"]
# 点击菜单下的文件
window['应用程序Menu'].child_window(title="文件(F)").click_input()
time.sleep(2)
#选择文件下的打开菜单 ,同理其他菜单也是如此打开
window.menu_select("文件(F)->打开(O)")
time.sleep(2)
#连接到打开窗口,并点击取消按钮
app['打开']['取消'].click()
#也可以使用下面这个方法 Button2 == 取消
# app['打开'].Button2.click()
总结:
本章节中我们学习了选择菜单栏中的一个菜单项的操作。语法menu_select()
并且出现新的窗口我们怎么去获取并操作其中的控件