appium无法获取toast的解决方案

a.本人之前一直使用的robotium自动化测试框架,但是考虑到appium更贴近用户的使用习惯(例如输入操作,robotium直接复制粘贴,而appium会调用系统键盘并逐一输入),所以决定试用下APPIUM这个自动化框架
b.实际使用过程中发现appium无法获取到底层的toast提示信息,例如未输入账号点击APP的登录按钮,会提示’请输入账号’这样的toast消息,在网上找过资料,也有大神基于seleriod框架定义了find_toast函数,但是拿过来用发现效果不怎么好,于是想到将toast弹出时的页面截图,从图片中获取’请输入账号’这个中文字符串,再来进行比对
c.废话不多少,下面是方法:

博主采用的python语言,原理是利用python-OCR识别图片中的中文字符,python-OCR的安装过程如下:
开发语言:python

使用工具类:1.pyocr
      2.PIL
      3.tesseract-ocr

步骤:

1.pyocr

网络通直接使用命令:
pip install pyocr

2.安装pil
网络通直接使用命令:
pip install PIL

3.安装tesseract-ocr

http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe
exe文件,下载后直接安装,建议默认安装过程中的选项,安装目录默认C:\Program Files (x86)\Tesseract-OCR
需要下载tesseract-ocr的中文库,地址:https://codeload.github.com/tesseract-ocr/tessdata/zip/master,里面包含tesseract多有的文字库,chi_sim.traineddata为简体中文库,将该文件放至C:\Program Files (x86)\Tesseract-OCR\tessdata目录

# coding=utf-8
from pyocr import pyocr
from PIL import Image
tools = pyocr.get_available_tools()[:]
print tools[0].image_to_string(Image.open('D:\\123.png'),lang='chi_sim')

上面代码中D:\123.png即为appium截取的图片,lang=’chi_sim’代表是中文识别

打印输出的就是整个123.png页面上所包含的中文字符,也许不仅仅只有“请输入账号”,我们只需要通过字符串提取出来即可。

你可能感兴趣的:(移动端测试)