使用pywinauto检查复选框不起作用

时间:2015-07-03 18:02:10

标签: user-interface python-3.x microsoft-ui-automation pywinauto

我从pip安装了最后一个pywinauto模块 我不知道如何使用Check(),UnCheck(),GetCheckState()方法。

这是我非常简单的代码示例。

from pywinauto import application

# Start the madvr settings application.
app = application.Application()
app.start_(r'C:\Program Files\LAV Filters\x86\madVR\madHcCtrl.exe editLocalSettingsDontWait')

# Handle the madvr settings window.
madvr = app.window_(title_re="madVR.*")

# Enable the smooth motion tab.
madvr.TreeView.GetItem(r'\rendering\smooth motion').Click()

# Check the smooth motion checkbox.
madvr.TCheckBox.Check()

如果我使用Click()方法,它可以工作,但这不是我想要的。

madvr.TCheckBox.Click()

如果已选中该复选框,则取消选中该复选框。

为什么我不能使用Check()方法?
我尝试使用Uncheck()和GetCheckState()方法,但它们也没有用。

2 个答案:

答案 0 :(得分:3)

我已添加"TCheckBox"类名称,以便在0.5.1中进行正确的复选框检测(本周将发布)。感谢用例。目前你可以解决它(代码更新为pywinauto == 0.6.x):

from pywinauto.controls.win32_controls import ButtonWrapper
checkbox = ButtonWrapper(madvr.TCheckBox.wrapper_object())
checkbox.get_check_state()

答案 1 :(得分:0)

尝试一下:

使用get_toggle_state()

checkbox = ButtonWrapper(madvr.TCheckBox.wrapper_object())
checkbox.get_toggle_state()