获取复选框状态并使用pywinauto相应地单击

时间:2017-11-29 17:35:22

标签: python pywinauto

当我在pywinauto下面使用代码时,我收到错误说

from pywinauto.controls.win32_controls import ButtonWrapper 
checkbox = ButtonWrapper(app.Dialog.child_window(title='Has Balance',auto_id='HasBalanceCheckEdit',control_type='CheckBox').TCheckBox.WrapperObject())
print(checkbox.GetCheckState())

错误:

raise MatchError(items = name_control_map.keys(), tofind = search_text)
pywinauto.findbestmatch.MatchError: Could not find 'TCheckBox' in 'dict_keys(['Has Balance', 'Has BalanceStatic', 'Static'])'

2 个答案:

答案 0 :(得分:1)

根据您提供的输出,不需要下一级规范TCheckBox。只需使用此代码:

checkbox = app.Dialog.child_window(title='Has Balance', auto_id='HasBalanceCheckEdit', control_type='CheckBox').wrapper_object()

显式ButtonWrapper实例化也不是必需的,因为.wrapper_object()已经自动检测到控件类型。这就是control_type='CheckBox'child_window可以找到控件的原因。

答案 1 :(得分:1)

使用import pywinauto.controls.uia_controls来解析上面的代码。