如何检查无control_type="CheckBox"属性的复选框切换状态?
问题:未设置control_type属性的复选框状态检查方案
需要检查某个复选框的切换状态,但该复选框未配置control_type="CheckBox"属性。通过自动化探查工具获取到的关联元素信息如下:
Static - 'Pairings:' (L299, T1063, R343, B1079)
标识符列表:['Pairings:', 'Pairings:Static', 'Static129']
定位路径:child_window(title="Pairings:", control_type="Text")CheckBox - '' (L343, T1063, R363, B1079)
标识符列表:['CheckBox12', 'Pairings:CheckBox']
对应界面截图:

此前检查正常配置复选框状态的代码示例:
element.child_window(auto_id="uxCheckOverComplemented", control_type="CheckBox").get_toggle_state()
可行解决方案建议
- 直接使用已知标识符定位:从探查信息可知,目标复选框拥有
CheckBox12和Pairings:CheckBox两个可用标识符,可直接通过这些标识定位元素后调用状态检查方法:# 方式1:使用CheckBox12定位 element.child_window(title="CheckBox12").get_toggle_state() # 方式2:使用Pairings:CheckBox定位 element.child_window(title="Pairings:CheckBox").get_toggle_state() - 通过相邻元素关联定位:目标复选框与文本元素
Pairings:位置相邻(文本元素右边界与复选框左边界重合),可先定位文本元素,再通过相对位置匹配复选框:# 先定位关联文本元素 text_elem = element.child_window(title="Pairings:", control_type="Text") # 根据文本元素的位置参数定位右侧复选框 checkbox_elem = text_elem.child_window( left=text_elem.rectangle().right, top=text_elem.rectangle().top, control_type="CheckBox" ) checkbox_elem.get_toggle_state() - 省略control_type参数尝试定位:若控件本质为复选框,即使未显式设置
control_type属性,也可尝试省略该参数,仅通过标识符定位后调用状态检查方法:element.child_window(title="Pairings:CheckBox").get_toggle_state()
内容的提问来源于stack exchange,提问作者Fadhl Jamal Al-Muhsin
相关产品推荐
相关产品推荐

