Pywinauto菜单选择错误 - Wireshark

问题描述:

我是非常新的windows automation.I自动wireshark使用autopy.Now我需要打开一个文件wireshark.I没有swapy tool.I也dot想在pyshark.I做它只是想尝试只在pywinauto.so我想是这样的:Pywinauto菜单选择错误 - Wireshark

from pywinauto import application 

print("Starting the proogram") 
app=application.Application() 
app.start_(r"C:\Program Files\Wireshark\Wireshark.exe") 
win = app.window_(title_re = ".*Wireshark Network Analyzer.*") 
win.MenuSelect("File->Open") 

,但我得到这个错误如下:

pywinauto.findwindows.WindowNotFoundError 

请帮我在这里用这个guys.Thanks提前

+1

做了回答帮助? –

因为我ca见WireShark启动几秒钟。您需要等待主窗口超过默认超时(5秒)。

win.Wait('ready', timeout=15) 

“软件更新”窗口还可以,如果弹出处理:

if app.SoftwareUpdate.Exists(timeout=10): 
    app.SoftwareUpdate.SkipThisVersion.Click() 
    app.SoftwareUpdate.WaitNot('visible') # just to make sure it's closed 

win.Wait('ready', timeout=15) 

但在任何情况下pywinauto不支持GDK部件(甚至是Windows UI自动化API不支持GDK应用)。菜单不适用于pywinauto或基于UIA的工具。您可以处理使用的解决方法只有像这样的是Wireshark:

win.TypeKeys('%F{ENTER}') # Alt+F, Enter (it calls "&File->&Open" menu) 
app.WiresharkOpenCaptureFile.FilenameEdit.SetEditText('I can set text here') 
app.WiresharkOpenCaptureFile.Open.Click() 
app.WiresharkOpenCaptureFile.WaitNot('visible') 

“打开”对话框是Windows打开/保存对话框的标准偏差和pywinauto支持就可以了许多控件。

要检查哪些对话由pywinauto使用可以很好地支持PrintControlIdentifiers()方法:

win.PrintControlIdentifiers() # prints nothing 
app.WiresharkOpenCaptureFile.PrintControlIdentifiers() # prints a lot of controls