API: UIA RadioButton
单选按钮(RadioButton)用于从多个选项中选择一个。同一组内的单选按钮是互斥的——选中一个会自动取消其他选项。
常见场景:
- 选择性别
- 选择支付方式
- 选择单选题答案
- 选择主题颜色
查找单选按钮
说明:单选按钮通常有标签文字,可以通过名称查找。
函数签名:
python
find_by_name(name: str) -> UIElement | Nonelua
find_by_name(name: string) -> UIElement | nilpython
from wingman import uia
# 查找名为"男"的单选按钮
radio = uia.find_by_name("男")
if radio:
print("找到单选按钮")1
2
3
4
5
6
2
3
4
5
6
选择单选按钮
通过点击选中
说明:模拟用户点击单选按钮来选中它。这是最常用的方式。
python
from wingman import uia
radio = uia.find_by_name("男")
if radio:
# 点击选中
radio["click"]()
print("已选中:男")1
2
3
4
5
6
7
2
3
4
5
6
7
通过设置值选中
set_checked(True)可编程选中单选按钮(2026-10-09 落地,win Toggle 模式 / mac AXChecked);也可click()(见上节)。set_value的实现是设置元素文本(setText),仅对文本型控件有效,对单选按钮调用不会选中它。
获取选中状态
is_checked()读取单选按钮选中状态(2026-10-09 落地)。get_info()返回键中仍无toggle_state字段,get_value()返回的是元素文本而非选中状态——读选中状态请用is_checked。
完整示例
选择性别
python
from wingman import uia
def select_gender(gender):
"""选择性别"""
# 可用的性别选项
options = {
"男": "male",
"女": "female",
"其他": "other"
}
if gender not in options:
print(f"无效的性别选项: {gender}")
return False
# 查找并点击对应的单选按钮
radio = uia.find_by_name(gender)
if radio:
radio["click"]()
print(f"已选择性别: {gender}")
# 脚本层暂无选中状态读取接口(get_info 无 toggle_state),无法回读验证
return True
else:
print(f"未找到性别选项: {gender}")
return False
# 使用
if select_gender("女"):
print("性别选择成功")1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
可用接口
查找单选按钮
| Python 函数 | Lua 函数 | 说明 | 参数 |
|---|---|---|---|
find_by_name(name) | find_by_name(name) | 按名称查找 | name - 单选按钮标签 |
find_by_id(id) | find_by_id(id) | 按 AutomationId 查找 | id - AutomationId |
单选按钮操作
| Python 方法 | Lua 方法 | 说明 |
|---|---|---|
click() | :click() | 点击选中 |
get_info() | :get_info() | 获取所有通用属性(不含选中状态) |
选中设置与读取请用
set_checked(bool)/is_checked()(见上节);set_value/get_value实为设置/读取元素文本,仅对文本型控件有效。
单选按钮属性
get_info() 返回键集见 概述(name/id/className/role/text/is_enabled/is_visible/has_focus/bounds),其中没有选中状态字段(无 toggle_state/is_toggle_pattern)。