首页 > 解决方案 > 如何通过pywinauto检查一个窗口或对话框是否显示

问题描述

我是新手,pywinauto刚刚开始学习。现在我pywinauto用来做一些自动测试。所以我需要知道如何检查一个对话框是否显示。

例如:

from pywinauto.application import Application

app = Application()
app.connect(process=1234)
main_window = app.window(class_name='YodaoMainWndClass')

在这里,我想检查 main_window 是否可见。但我不知道该怎么做。也许我应该调用__getattribute__或其他功能?

标签: pythonmodal-dialogpywinauto

解决方案


方法.exists()返回TrueFalse(如果它默认不存在 5 秒)。它可能看起来像这样:

main_window = app.window(class_name='YodaoMainWndClass', visible_only=True)
if main_window.exists(timeout=10):
    pass # do something

如果窗口没有出现并且我们应该没有通过测试,那么更容易确保我们不能等到它打开。那么方法.wait()更可取:

main_window = app.window(class_name='YodaoMainWndClass')
main_window.wait('visible', timeout=10)

如果超时结束,方法.wait()将引发异常ElementNotFoundError,否则将继续执行。

有关详细信息,请参阅等待长时间操作一章。


推荐阅读