首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pywinauto菜单选择错误- Wireshark

Pywinauto菜单选择错误- Wireshark
EN

Stack Overflow用户
提问于 2015-09-04 13:49:47
回答 1查看 543关注 0票数 2

我是windows自动化的新手。我正在使用autopy.Now自动化wireshark我需要打开一个文件wireshark。我没有swapy工具。我也不想在pywinauto.so中做这件事。我只想在pyshark.I中尝试一下。我尝试过这样:

代码语言:javascript
运行
复制
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")

但是我得到了下面的错误:

代码语言:javascript
运行
复制
pywinauto.findwindows.WindowNotFoundError

请提前帮我解决这个guys.Thanks问题

EN

回答 1

Stack Overflow用户

发布于 2015-09-04 16:38:40

正如我所看到的,WireShark正在启动几秒钟。等待主窗口的时间需要超过默认超时时间(5秒)。

代码语言:javascript
运行
复制
 win.wait('ready', timeout=15)

如果弹出"Software Update“窗口,也可以处理该窗口:

代码语言:javascript
运行
复制
if app.SoftwareUpdate.exists(timeout=10):
    app.SoftwareUpdate.SkipThisVersion.click()
    app.SoftwareUpdate.wait_not('visible') # just to make sure it's closed

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

编辑(2019年1月21日):最新版本的WireShark构建于Qt5之上,当前的pywinauto示例保存在repo:examples/wireshark.py中。

但是pywinauto无论如何都不支持GDK小部件(甚至Windows UI Automation API也不支持GDK应用程序)。菜单对于pywinauto或基于UIA的工具不可用。您可以使用变通方法处理WireShark,如下所示:

代码语言:javascript
运行
复制
win.type_keys('%F{ENTER}') # Alt+F, Enter (it calls "&File->&Open" menu)
app.WiresharkOpenCaptureFile.FilenameEdit.set_edit_text('I can set text here')
app.WiresharkOpenCaptureFile.Open.click()
app.WiresharkOpenCaptureFile.wait_not('visible')

"Open“对话框是Windows Open/Save对话框的标准变体,pywinauto在它上面支持许多控件。

要检查pywinauto支持哪个对话框,请使用print_control_identifiers()方法:

代码语言:javascript
运行
复制
win.print_control_identifiers() # prints nothing
app.WiresharkOpenCaptureFile.print_control_identifiers() # prints a lot of controls
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32390929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档