python - pywinauto: MenuSelect() 在某些应用程序中不能用于选择 "MenuBar"。该库中适合使用的功能是什么?

标签 python windows menubar pywinauto

我为名为“Team Developer”的应用程序自动化测试,该应用程序属于 Gupta Technology。它有一个菜单栏而不是菜单。我无法通过 MenuSelect() 选择菜单,它显示“raise RuntimeError("There is no menu.")”错误。

import pywinauto
import time

from pywinauto.application import Application
app = Application.start('C:\Program Files (x86)\Gupta\Team Developer.exe')
pywinauto.application.Application()
time.sleep(2)
MenuItms = app.window_(title_re = "Gupta*").MenuSelect("File->Exit")

如何从菜单栏中选择项目? 我也使用“Swapy”为 pywinauto 获取正确的 python 代码,但没有有用的结果。

最佳答案

现在可以将菜单栏重新解释为工具栏。但是按钮文本不可用(稍后可以使用混合 native /UIA 方法来完成)。你可以试试latest branch of pywinauto (运行 python setup.py install)。

这是一个带有 RebarTest.exe 示例应用程序的示例(从 repo 根文件夹运行):

import pywinauto

app = pywinauto.Application().start_(r'.\apps\MFC_samples\x64\RebarTest.exe')
app.RebarTest.MenuBar.MenuBarClickInput('#1->#0->#0', app) # View->Toolbars->Customize
app.Customize.CloseButton.Click()
app.Customize.WaitNot('visible')

app.RebarTest.MenuBar.MenuBarClickInput([2, 0], app)
app.Window_(title='About RebarTest').OK.Click()
app.Window_(title='About RebarTest').WaitNot('visible')

请为您的应用尝试此解决方法,如果可行请告诉我们。

关于python - pywinauto: MenuSelect() 在某些应用程序中不能用于选择 "MenuBar"。该库中适合使用的功能是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113913/

相关文章:

c++ - 如何使用 Visual Studio 在 C++ 中使用二维数组?

windows - 某些 Windows DLL 显然如何同时支持 32 位和 64 位?

swift - 如何在 UIPageviewcontroller 中实现静态菜单栏?

javascript - 添加子菜单项

python - 根据python中的变量限制小数

python - 导入错误 : cannot import name 'logsumexp' when importing sklearn. model_selection

c - Windows 中 char * 和 LPSTR 的区别

qt - QML 应用程序窗口 : set minimum size to fit content

python - 有没有一种简单的方法可以在没有图像的情况下为 Kivy 标签、按钮、小部件等添加边框?

python - 从命令提示符解码时出现问题 [python]