什么是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元素识别的更多相关文章

  1. appium自动化测试之UIautomatorviewer元素定位

    appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...

  2. Appium之Toast元素识别

    问题思考 在日常使用App过程中,经常会看到App界面有一些弹窗提示(如下图所示)这些提示元素出现后等待3秒左右就会自动消失,那么我们该如何获取这些元素文字内容呢? Toast简介 Android中的 ...

  3. APP自动化 -- 获取toast元素的文本内容

    一.toast元素 1.表现形式:toast元素就是下图中  “操作成功” 那个一闪而过的标签. 2.特殊点:因为一闪而过,时间太短,用UIAutomatorView截屏截不到. 二.获取方法 1.用 ...

  4. python3+Appium自动化12-H5元素定位环境搭建

    前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素 ...

  5. python3+Appium自动化13-H5元素定位实践案例

    测试场景 启动钉钉app进入工作H5页面,点击考勤签到 查看webview上元素 1.电脑上打开chrome浏览器输入:chrome://inspect/#devices 2.Discover USB ...

  6. python3+Appium自动化03-Appium元素检测

    需要导入方法NoSuchElementException from appium import webdriver from selenium.common.exceptions import NoS ...

  7. python3+Appium自动化02-Capability配置

    基本参数 参数 描述 实例 automationName 自动化测试引擎 Appium或 Selendroid platformName 手机操作系统 iOS, Android, 或 FirefoxO ...

  8. python+Appium自动化:H5元素定位

    问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...

  9. python+Appium自动化:toast定位

    Toast简介 Toast是一种简易的消息提示框. 当视图显示给用户,在应用程序中显示为浮动.和Dialog不一样的是,它永远不会获得焦点,无法被点击. 用户将可能是在中间键入别的东西.Toast类的 ...

随机推荐

  1. web攻击之七:常见CDN回源问题总结

    1. URL链接出现非法链接 (如 */./Play/show/id/349281 ); 2. CDN接收未知Referer处理失效(目前搜索引擎的状态码为499); 3. CDN抓取服务器 Cach ...

  2. cocos2d-x 屏幕分辨率适配方法

    转自:http://blog.csdn.net/somestill/article/details/9950403 bool AppDelegate::applicationDidFinishLaun ...

  3. 二 kafka设计原理

    kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力. 1.持久性     kafka使用文件存储消息,这就直接决定kafka ...

  4. java基础知识(8)---内部类

    内部类:如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象.这时,为了方便设计和访问,直接将A类定义在B类中.就可以了.A类就称为内部类.内部类可以直接访问外部类中的成员.而外部类想要访问内 ...

  5. VisualGDB系列1:VisualGDB总体概述

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文总体介绍VisualGDB能给你带来 ...

  6. eclipse安装WTP部署WEB项目

    打开WTP官方安装指南,找到想要的下载站点 http://wiki.eclipse.org/WTP_FAQ#How_do_I_install_WTP.3F 我选择的是http://download.e ...

  7. 第二篇elasticsearch配置

    1.去github搜索 elashsearch——head,以mobz开头的2.在根目录下安装npm install 3.修改elashsearch下的config文件下的elashsearch.yu ...

  8. R: factor & list 生成和操作因子、列表

    ################################################### 问题:生成.操作列表 & 因子   18.4.27 怎么生成列表 list.因子 fac ...

  9. Struts2学习第七课 OGNL

    request变成了struts重写的StrutsRequestWrapper 关于值栈: helloWorld时,${productName}读取productName值,实际上该属性并不在requ ...

  10. java第一天--Java开发环境的搭建以及使用eclipse从头一步步创建java项目

    一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...