C/S 的标签 label 获取文本出错解决方案
有的同学需要获取 CS 程序中的 label 标签中的文本,如下图:
结果会报这个错:
我们先根据报错提示看一下原代码
def get_text(win_class=None,win_name=None,selector=None,waitfor=WAIT_FOR):
try:
automation.SetGlobalSearchTimeOut(waitfor)
ctrl = get_control(win_class, win_name, selector)
ctrl = automation.Control.CreateControlFromControl(ctrl)
return ctrl.CurrentValue()
except Exception as e:
raise e
结论:7.0 判断了 value,而没有判断 text,所以会产生错误
临时解决方案:替换 get_text() 方法,该问题再 8.0 中已解决,各位同学们放心
替换代码如下:
def get_text(win_class=None,win_name=None,selector=None,return_field='text',waitfor=WAIT_FOR):
try:
automation.SetGlobalSearchTimeOut(waitfor)
ctrl = get_control(win_class, win_name, selector)
ctrl = automation.Control.CreateControlFromControl(ctrl)
if return_field == 'value':
return ctrl.AccessibleCurrentValue()
else:
return ctrl.AccessibleCurrentName()
except Exception as e:
raise e
运行结果:
挺好的,加油!
哈,解决问题优先,加油加油 😆
靖哥也开始修改源码了 😎
👍