pywinauto - 动态控制总是列在 print_control_identifiers()

Posted

技术标签:

【中文标题】pywinauto - 动态控制总是列在 print_control_identifiers()【英文标题】:pywinauto - dynamic control always listed in print_control_identifiers() 【发布时间】:2020-10-29 09:21:20 【问题描述】:

我正在尝试自动化连接和断开 Internet 的程序。因此,在一个窗口中,它有一个动态的断开连接按钮,该按钮仅在应用程序连接时出现。

我正在尝试使用.exists() 方法或.visible 参数检查断开连接按钮。不幸的是,即使窗口中不存在按钮,两者总是返回true

当我检查print_control_identifiers() 时,断开连接按钮始终列在该特定窗口中,尽管它当前不存在于窗口中。

如何检查断开连接按钮当前是否存在和/或是否可见?

我正在使用 backend="win32" 创建一个 pywinauto 实例,因为我们的代码是为这些访问标识符编写的,其他一切正常。

【问题讨论】:

【参考方案1】:

想通了,有一个小错字,必须将使用 .visible 属性的条件包装在 try/except 子句中,因为当元素不可见时它会抛出异常......不知道为什么这不只需返回 False,因为它是一个布尔值,在可见时返回 True。

【讨论】:

以上是关于pywinauto - 动态控制总是列在 print_control_identifiers()的主要内容,如果未能解决你的问题,请参考以下文章

Pywinauto常用01--print_control_identifiers()

用pywinauto实现QT自动化

下载pywinauto

在 WPF 和 XAML 中,如何让行详细信息的列在跳过多个列后动态更改以在父行下对齐?

pywinauto安装

pywinauto处理UI自动化