python3+Appium自动化04-Toast元素识别
什么是toast?
如下图,“再按一次退出程序”,这就是toast

如何定位toast元素?
Appium1.6.3开始支持识别Toast内容,主要基于UiAutomator2
想定位toast元素,这里一定注意automation的参数必须是Uiautomator2才能定位到
‘automationName':'Uiautomator2'
安装appium-uiautomator2-driver
安装命令cnpm install appium-uiautomator2-driver
安装完成之后,进入appium的安装目录下C:\Roaming\npm\node_modules\appium\node_modules查看

且server目录下,apks文件夹中有如下apk

安装selenium模块
pip install selenium
安装完成后检测是否安装成功

示例
场景:输入密码错误时,toast提示"用户名或密码不对"
#coding=utf-8
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
desired_caps = {
#android的apk
'platformName': 'Android',
#手机设备名称
'deviceName': '192.168.175.101:5555',
#android系统的版本号
'platformVersion': '5.1',
'automationName':'Uiautomator2', 'app':r'C:\Users\bzART\Desktop\app-artmall-release.apk',
# apk包名
'appPackage': 'com.baozhenart.artmall',
# apk的launcherActivity
'appActivity': 'com.baozhenart.artmall.SplashActivity',
#默认neReset为false,不要在会话前重置应用状态,每次启动都跟第一次启动一样,变为true则不一样
'noReset':True }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.implicitly_wait(10) #点击个人中心
driver.find_element_by_id("com.baozhenart.artmall:id/ll_user").click()
time.sleep(2)
#点击登录注册
driver.find_element_by_id("com.baozhenart.artmall:id/iv_user_head").click() time.sleep(2)
#点击密码验证登录
driver.find_element_by_id("com.baozhenart.artmall:id/login_title").click()
time.sleep(2)
#输入用户名
driver.find_element_by_id("com.baozhenart.artmall:id/et_username").clear()
driver.find_element_by_id("com.baozhenart.artmall:id/et_username").send_keys("bd2")
# 输入密码
driver.find_element_by_id("com.baozhenart.artmall:id/et_password").send_keys("")
#点击确定
driver.find_element_by_id("com.baozhenart.artmall:id/bt_login").click() error_message="用户名或密码不对"
message='//*[@text=\'{}\']'.format(error_message)
toast_element = WebDriverWait(driver,5).until(lambda x:x.find_element_by_xpath(message))
print(toast_element.text)
toast定位踩过的坑
增加了'automationName':'Uiautomator2'这个,运行脚本就报错,注释掉就正常,报错如截图所示

此时是由于版本兼容性问题,试着把appium升级到最新版本试试。我用的是1.8.1正常,之前是1.7.2就报上面的错误
python3+Appium自动化04-Toast元素识别的更多相关文章
- appium自动化测试之UIautomatorviewer元素定位
appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...
- Appium之Toast元素识别
问题思考 在日常使用App过程中,经常会看到App界面有一些弹窗提示(如下图所示)这些提示元素出现后等待3秒左右就会自动消失,那么我们该如何获取这些元素文字内容呢? Toast简介 Android中的 ...
- APP自动化 -- 获取toast元素的文本内容
一.toast元素 1.表现形式:toast元素就是下图中 “操作成功” 那个一闪而过的标签. 2.特殊点:因为一闪而过,时间太短,用UIAutomatorView截屏截不到. 二.获取方法 1.用 ...
- python3+Appium自动化12-H5元素定位环境搭建
前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素 ...
- python3+Appium自动化13-H5元素定位实践案例
测试场景 启动钉钉app进入工作H5页面,点击考勤签到 查看webview上元素 1.电脑上打开chrome浏览器输入:chrome://inspect/#devices 2.Discover USB ...
- python3+Appium自动化03-Appium元素检测
需要导入方法NoSuchElementException from appium import webdriver from selenium.common.exceptions import NoS ...
- python3+Appium自动化02-Capability配置
基本参数 参数 描述 实例 automationName 自动化测试引擎 Appium或 Selendroid platformName 手机操作系统 iOS, Android, 或 FirefoxO ...
- python+Appium自动化:H5元素定位
问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...
- python+Appium自动化:toast定位
Toast简介 Toast是一种简易的消息提示框. 当视图显示给用户,在应用程序中显示为浮动.和Dialog不一样的是,它永远不会获得焦点,无法被点击. 用户将可能是在中间键入别的东西.Toast类的 ...
随机推荐
- Poj_1008--Maya Calendar
一.Description 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现.从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法.这个Haab ...
- Oracle数据库安全性设计
一.什么是安全的系统 安全性建设是一个长期并且卓绝的工作.作为一个符合标准的企业级系统,我们认为税务系统应该具备以下的安全性特点: ◆高可用性 ◆对敏感数据的访问控制能力. ◆监测用户行为的审计能力. ...
- #np.random.normal,产生制定分布的数集(默认是标准正态分布)
http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html #np.random.normal,产生制定分 ...
- LAMP 1.6 Discuz打开错误
打开discuz失败, ps aux |grep mysql ps aux |grep httpd 查看mysql apache有没有打开. 重启mysql service mysqld restar ...
- HBase 官方文档
HBase 官方文档 Copyright © 2010 Apache Software Foundation, 盛大游戏-数据仓库团队-颜开(译) Revision History Revision ...
- [51nod1267]4个数和为0(预处理+双指针)
题意:判断能否从序列中找出4个数的和为0. 解题关键:n^2预处理任意两个数的和,sort一下,双指针进行判定. 此解法尚存在一个问题,就是左右枚举的时候如果相同的有许多的时候该左边移动还是右边移动 ...
- 5、预测和鉴定miRNA的靶基因
转载:http://www.oebiotech.com/Article/mirnabjyyc.html http://www.ebiotrade.com/newsf/2014-9/2014925941 ...
- 第 2 章 Python 语言入⻔
目录 2.1低而长的学习曲线 2.2Python的优势 2.3在你的计算机中安装Python 2.4如何运行Python程序 2.5文本编辑器 2.6寻求帮助 Python语言是一种流行的编程语言,在 ...
- 解决spring mybatis 整合后mapper接口注入失败
spring整合mybatis,在dao层我们只写一个接口,配置相应的*mapper.xml文件, 报如下错误: org.springframework.beans.factory.Unsatisfi ...
- Java面向对象的三大特性 继承
继承是类与类的一种关系,是“is a"关系 子类拥有父类的属性和方法,private除外 class 子类 extends 父类 方法的重写 调用方法时会优先调用子类的方法 重写时,返 ...