toast提示信息处理
什么是toast提示信息?
toast:Android中的Toast是一种简易的消息提示框。
和Dialog不一样的是,它永远不会获得焦点,无法被点击。用户将可能是在中间键入别的东西。Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到。而且Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失。
toast提示信息案例:
toast获取要求:
1.toast要appium1.6.3以上版本才支持
2.从appium1.7官方文档来看,可以支持:Espresso、UiAutomator2、 UiAutomator、 Selendroid四种驱动模式(建议使用UIAutomator2)
3.安装UIAutomator2:pip install UIAutomator2
4.UIAutomator2:只支持Android版本5.0以上
代码+讲解样式
①
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
导入显式等待的模块,用于元素查找
②#设置automationName
'automationName':'UIautomator2'
在desiredCapabilities中指定automationName为UIAutomator2
③#获取主activity
action = driver.current_activity
print(action)
# 等主页面activity出现,10秒内
driver.wait_activity(".activity.LoadingActivity", 10)
time.sleep(10)
#点击返回
driver.back()
获取主activity,再点击返回按钮
④#定位toast元素
toast_loc=('xpath',".//*[contains(@text,'再按一次返回键退出淘宝')]")
t = WebDriverWait(driver,10,0.1).until(EC.presence_of_all_elements_located(toast_loc))
print (t)
定位toast元素
=========================================================================
源码如下:
'''打开淘宝APP'''
#coding=utf-8
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
desired_caps = {
#手机的操作系统
'platformName':'Android',
#手机设备名称,通过adb devices查看
'deviceName':'127.0.0.1:62001', #'FESKI7YPRO999LVW',
#手机版本号
'platformVersion':'5.1.1',
#app包名,通过aapt dump badging ****.apk查看
'appPackage':'com.taobao.taobao', #淘宝:'com.taobao.taobao',
#appActivity,通过aapt dump badging ****.apk查看
'appActivity':'com.taobao.tao.welcome.Welcome', #淘宝'com.taobao.tao.welcome.Welcome'
#设置automationName
'automationName':'UIautomator2'
}
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
#获取主activity
action = driver.current_activity
print(action)
# 等主页面activity出现,10秒内
driver.wait_activity(".activity.LoadingActivity", 10)
time.sleep(10)
#点击返回
driver.back()
#定位toast元素
toast_loc=('xpath',".//*[contains(@text,'再按一次返回键退出淘宝')]")
t = WebDriverWait(driver,10,0.1).until(EC.presence_of_all_elements_located(toast_loc))
print (t)