Appium+Python+Android,识别toast提示信息

  很久很久以前,为了识别Android手机应用上的toast提示信息,在脚本中加入了adb的截图+Python三方库(Tesseract-OCR)图片识别,过程很辛苦,结果很失望,根本截不到toast提示。

  翻旧账,一定要搞定toast,查了很多资料,最后又回来了:查找元素!没错,就是它。。。

  话不多说,直接上代码:

  一顿乱导。。。

import time
from
appium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['appPackage'] = 'com.doctor.yy'
desired_caps['appActivity'] = 'com.doctor.br.activity.LauncherActivity'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
desired_caps['automationName'] = 'uiautomator2'
dr = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
x = dr.get_window_size()['width']
y = dr.get_window_size()['height']

# 滑他
time.sleep(1)
dr.swipe(x*0.9,y*0,x*0.1,y*0,1000)
# 再滑他
time.sleep(1)
dr.swipe(x*0.9,y*0,x*0.1,y*0,1000)

# 接着滑他
time.sleep(1)
dr.swipe(x*0.9,y*0,x*0.1,y*0,1000)

# 好了,滑进去了
time.sleep(1)
dr.find_element_by_id('com.doctor.yy:id/iv_enter').click()

time.sleep(1)
dr.find_element_by_id('com.doctor.yy:id/iv_enter').click()
time.sleep(1)
dr.find_element_by_id('com.doctor.yy:id/et_username').send_keys('13600000015')

time.sleep(1)
dr.find_element_by_id('com.doctor.yy:id/et_password').send_keys('25800000')

time.sleep(1)
dr.find_element_by_id('com.doctor.yy:id/btn_login').click()

# 自定义一个定位器,要查找的toast内容为:账号或者密码错误!
toast_loc = (By.XPATH,".//*[contains(@text,'帐号或者密码错误!')]")
toast_text
= WebDriverWait(driver=dr,timeout=5).until(EC.presence_of_element_located(toast_loc))

# 输出一下,查看一下元素的文本内容
print
(toast_text.text)

 

posted @ 2019-03-27 18:13  影_。  阅读(319)  评论(0)    收藏  举报