python - 如何通过pywinauto检查一个窗口或对话框是否显示
问题描述
我是新手,pywinauto
刚刚开始学习。现在我pywinauto
用来做一些自动测试。所以我需要知道如何检查一个对话框是否显示。
例如:
from pywinauto.application import Application
app = Application()
app.connect(process=1234)
main_window = app.window(class_name='YodaoMainWndClass')
在这里,我想检查 main_window 是否可见。但我不知道该怎么做。也许我应该调用__getattribute__
或其他功能?
解决方案
方法.exists()
返回True
或False
(如果它默认不存在 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
,否则将继续执行。
有关详细信息,请参阅等待长时间操作一章。
推荐阅读
- c# - C# 字符串中控制字符的转义码
- javascript - Array.from(Object) 和 [...Object] 有什么区别?
- javascript - 使用带有页面访问令牌的 javascript SDK 在 facebook 页面上发布
- powershell - 需要将丢失的文件从一个服务器子目录复制到另一个具有相同文件和文件夹名称的子目录
- apostrophe-cms - 将网站资产从 S3 提供到包含 Apostrophe CMS 的 AWS ECS
- docker - 如何在dockerfile中正确使用--build-arg?
- c# - 如何使用 C# 将 SQL 表传递和格式化为 excel
- python-3.x - Python docx模块-word文档的Cover Page
- laravel - 无法从 vue 读取 Laravel 控制器中的文件列表对象
- postgresql - 没有唯一约束匹配给定键的引用