如何处理一些控件无法设置的【下拉框技巧】
适用版本:RPA 5.0
注:其他版本需要稍作修改才能使用。
如果碰到 Select 选择无法设置的下拉框。
我们可以有以下两种处理办法:
第一种办法:
看【获取文本】能不能获取,如果能获取下拉框里的内容,那恭喜你有救了。
第一步:获取文本
第二步:与现有的数据源做对比(如果获取的文本有后面有空格或者特殊字符,则需要特殊处理一下)
第三步:如果比对成功则退出循环。
第四步:如果向下比对不成功则继续向上匹配。
第五步:如果始终都匹配不成功则超时退出。
代码如下:
import time
import ubpa.ics as ics
'''
对比数据源和获取文本得到的值
如果对比成功则打印成功退出循环
否则继续按向下键继续对比
'''
def choice_drop_down(win_title1 = None,control1,select_str):
try:
waitfor = 10
starttime = time.time()
while True:
txt = ''
strlen = len(select_str) #记录数据源的长度
try:
txt = ics.control_get_text_cs(win_title = win_title1,control = control1)
except Exception as e:
print (e)
if (txt[:strlen].lower() == select_str[:strlen].lower()): #对比数据源和获取文本得到的值
print('Choise Success:' + select_str) #对比成功则打印成功
break
else:
runtime = time.time() - starttime #计算时间防止对比不成功导致死循环
if runtime >= waitfor:
raise Exception('选择超市,未选中')
time.sleep(0.02)
ics.control_send_cs(win_title = win_title1,control=control1,text = '{DOWN}') #对比不成功则继续向此文本框发送向下键
except Exception as e:
raise e
PS:为了大家着想。(需要的同学手动敲一遍加深记忆😄)
第二种办法:
如果获取文本无法获取,则可以把上面的获取文本换成 CTRL+C,用设计器的【从剪切板获取】功能,把数据获取出来做成变量来进行对比,根据现场环境按【向下键】或【向右键】等。
作业:
1、 有幸用到此功能的同学可以尝试一下向下键到底后再向上读取,因有些环境不一定初始位置就是第一个。
代码改一下,点这个
高级一点的是:
```Python
这里放代码
```
你试试