Python 检查应用程序中的复选框是否被选中

Python check if Checkbox in Application is checked

我目前正在尝试使安装过程自动化,我正在使用 pywinautogui 进行此操作。我想检查一个复选框是否被选中(实际上是一个按钮),因为在某些情况下复选框已经被选中并且如果我再次按下它会取消选中它。有什么办法可以算出状态吗?

app = Application().Start(cmd_line=u'installer.exe')
windowsformswindowappbarad = app[u'Installer']
windowsformswindowappbarad.wait('ready')
windowsformsbuttonappbarad = windowsformswindowappbarad.Button4
#print(checkbox.get_click_state())
windowsformsbuttonappbarad.click()

this is how the Checkbox looks like

编辑:

app = Application().Start(cmd_line=u'installer.exe')
windowsformswindowappbarad = app[u'Installer']
windowsformswindowappbarad.set_focus()
windowsformswindowappbarad.wait('ready')
checkbox_object = windowsformswindowappbarad.Button4()

if checkbox_object.get_toggle_state() == 0:
    print("not set")
elif checkbox_object.get_toggle_state() == 1:
    print("ein")

有时 get_toggle_state()、get_check_state() 或 is_checked() 方法不起作用。在这些情况下,唯一的方法是使用:

wrapper.legacy_properties()['State']

您可以在 Legacy|Accessible.State

中检索带有 inspect.exe 的状态的值

通过下面的代码,您可以获得复选框状态。

Checkbox_object = window_object.wrapper_object()
 if checkbox_object.get_toggle_state() == 0:
            return False
 elif checkbox_object.get_toggle_state() == 1:
            return True

如果您遇到问题,请告诉我。

下面是我试过的代码:

from pywinauto.application import Application

app1 = Application(backend='uia').connect(title="H4)")
app1.H4.set_focus()
checkboxobject=app1.Dialog.CheckBox0
value=checkboxobject.get_toggle_state()
print(value)

如果值为 0 复选框未选中,如果值为 1 则选中