提高截图准确性、兼容性的方法
截图时尽量保证截取的图像辨识度高、独立清晰
例如截取一个按钮图像时,尽量不要带上太多的嘈杂背景图案,避免在背景变化后难以成功识别的问题
图像识别使用的算法更适合用来识别按钮类(带边框)、图标类的图像
仅仅单独截取几个文字的识别成功率很低,请尽量调整图片截取内容来达到较好的识别效果,避免截取识别效果较差的内容
请尽量调整图片截取内容来达到较好的识别效果,避免截取识别效果较差的内容
参考指标:confidence
代码层面几种方法
- 修改全局隐式等待时间、显式等待时间:ST.FIND_TIMEOUT = 60, ST.FIND_TIMEOUT_TMP = 10,隐式等待包括touch,wait,swipe的第一张图片识别等,显式等待包括exists等
- 不涉及画面切换时,多使用exists
# 如果图片存在,则点,支持多次
def if_exists_touch(self, pic, duration=0.01, n=3):
for i in range(n):
pos = exists(pic)
if pos:
touch(pos, duration=duration)
sleep(0.5)
- 可以尝试多截几张图纳入查找列表,有一个匹配到即可
# 图片脚本兼容性,若干个图片,有一个匹配到即可
def touch_piclist(self, *args):
for pic in args:
pos = exists(pic)
if pos:
touch(pos)
break
- 涉及画面切换时,先使用wait等待元素出现
# 画面切换后,使用wait等待后,点击
def wait_touch(self, pic, timeout=60, duration=0.01):
my = wait(pic, timeout=timeout)
touch(my, duration=duration)
报告生成
推荐使用内置函数LogToHtml
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
report_path_name = now + '_' + self.__class__.__name__
log_path = os.path.join(os.path.dirname(__file__), 'log')
output_path = os.path.join(config_data.ROOT_DIR, 'report', report_path_name)
tmp = LogToHtml(script_root=__file__, log_root=log_path,
export_dir=output_path, logfile=os.path.join(log_path, 'log.txt'), lang='en',
plugins=None)
tmp.report()