Appium-Python 识别 toast 弹出框消息

前言:Windows 的 appium1.4 版本使用广泛,但是一直无法抓取到 app的 total 弹出消息,造成了一定程度上断言困难的情况。这里我尝试了使用曲线救国的方式  使用Tesseract OCR (光学字符识别)和 pillow 来识别弹出框的内容。

1.使用截图的方式识别

我使用的是python语言,原理是利用python-OCR识别图片中的中文字符,python-OCR的安装过程如下:

使用工具类:

1.pyocr

2.PIL

3.tesseract-ocr

1,2 可以直接使用pip安装

3.安装tesseract-ocr

http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.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目录

参考代码:

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

打印输出的就是整个test.png页面上所包含的中文字符。

2.使用抓取toast方式识别  (appium1.6 以上)

from selenium.webdriver.support.waitimport WebDriverWait

from selenium.webdriver.supportimport expected_conditions

from selenium.webdriver.common.byimport By

def find_toast(self,message, timeout=10, poll_frequency=0.5): #获取toast  message为需要抓到的toast文本

    xp_message= '//*[@text=\'{}\']'.format(message)

    element= WebDriverWait(self.driver, timeout, poll_frequency).until(

        expected_conditions.presence_of_element_located((By.XPATH, xp_message)))

    if element.text== message:return True

    else:return False

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容