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页面上所包含的中文字符,也许不仅仅只有“请输入账号”,我们只需要通过字符串提取出来即可。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值