当我在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'])'
答案 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来解析上面的代码。