无法使用 UIA 后端单击带有 pywinauto 的单选按钮

Can't click radio button with pywinauto using UIA backend

pywinauto documentation 上它说您可以使用 click 方法单击单选按钮:

我在使用 UIA 后端时遇到过问题,因为它与 win32 不同。在这种情况下,似乎没有办法点击单选按钮。

我尝试使用 window 规范:

    spec.window(auto_id='RadioButtonManualbackground').click()

AttributeError: Neither GUI element (wrapper) nor wrapper method 'click' were found (typo?)

找不到任何名为 click 的方法。我尝试使用 togglecheck,但它们也不起作用。

我还尝试使用树层次结构单击单选按钮:

    app.Dialog.Analysis.BackgroundCorrection.ManualBackgroundCorrection.click()

pywinauto.uia_defines.NoPatternInterfaceError

同样,这不适用于 togglecheck

是否支持使用 UIA 后端单击单选按钮,我该怎么做?

这可能有点令人困惑,但是单选按钮包装器具有使用 SelectionItemPattern.select() 方法。我在 test_radio_button 单元测试中找到了它。

正确的实施应该检查所有可能的模式并选择有效的模式。所以我会认为它是一个错误:提交 issue #549。感谢报告!

P.S。您总是有方法 .click_input() 作为解决方法。它通过移动光标执行最真实的点击。