问题引出:
入口自动化脚本执行过程中,发现输入法的英文补全模块最近一直是失败的。(输入法正常候选长成这个样子:
还有这个样子:
问题分析:
检查脚本的步骤,判断是否正常进入英文补全模式,是通过上屏二选,判断上屏的文字与预期的文字是否一致。由于正常模式下,英文候选要么在首位,要么在五选,如果未能正常进入英文补全模式的话,上屏的二选必然是汉字,因此通过二选来判断还是很靠谱的~但是通过对比上屏的字符和预期的是否一致是否靠谱呢?
脚本运行相当一段时间内,其几乎没有失败过,但是最近却一直失败。尝试手动操作,发现完全可以正常进入英文补全模式,那是哪里出错了呢?对比上屏的文字和预期结果的文字,发现候选的词序一旦发生变化,上屏的字符串和预期结果就不一样,脚本就会执行失败。
既然正常模式和英文补全模式的区别是候选中是否全部都是英文,那是否可以通过判断上屏的字符是否是英文来判断呢??
解决方法:
定义一个函数,判断上屏的字符是否是英文字母,通过转码和编码区间来判断:
def is_alphabet(uchar): """判断一个unicode是否是英文字母"""if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):return True else: return False
…….
txt = ImeCommon.GetEditHandle()
print 'txt = ',txt
flag = is_alphabet (txt)
... ...
查看全文内容,请点击下载:http://www.51testing.com/html/65/n-3704165.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。