Appium自动化测试中获取Toast信息操作
作者:测试之路king 发布时间:2022-05-12 07:10:48
标签:Appium,获取,Toast
Toast简介
Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。
Toast 定位
Appium 1.6.3开始支持识别Toast内容,主要是基于UiAutomator2,因此需要在Capablity配置参数
启动参数配置
desired_caps['automationName']='uiautomator2'
环境
Appium-Python-Client: 2.1.2
selenium: 4.1.0
Appium:v1.20.2
测试应用
网易云课堂
测试设备
夜神模拟器 Android 7.1.2
测试场景
进入登录界面输入用户名和错误的密码,获取Toast内容
代码实现
# _*_ coding:utf-8 _*_
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
desired_caps = {
"platformName": "Android",
"platformVersion": "7.1.2",
"udid": "127.0.0.1:62001",
"appPackage": "com.netease.edu.study",
"appActivity": "com.netease.edu.study.activity.ActivityWelcome",
"noReset": True,
'automationName': 'uiautomator2'
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
driver.implicitly_wait(30)
# 点击我的菜单
driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/tab_account").click()
# 点击登录注册按钮
driver.find_element(AppiumBy.XPATH, "//*[@text='登录/注册']").click()
# 点击手机号码登录
driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/login_phone_login").click()
# 输入手机号码
driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/tv_phone_num").send_keys("132****475")
# 输入错误密码
driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/tv_phone_pwd").send_keys("wy12345")
# 点击登录按钮
driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/button").click()
# 获取toast提示
toast_text = driver.find_element(AppiumBy.XPATH, "//*[@class=\"android.widget.Toast\"]").text
print(toast_text)
执行结果:
说明
toast 获取主要使用一个通用的class属性获取,通过xpath的方式://*[@class="android.widget.Toast"]
toast信息存在是否存在判断封装
代码
def is_toast_exist(driver,text,timeout=20,poll_frequency=0.5):
'''is toast exist, return True or False
:Agrs:
- driver - 传driver
- text - 页面上看到的文本内容
- timeout - 最大超时时间,默认20s
- poll_frequency - 间隔查询时间,默认0.5s查询一次
:Usage:
is_toast_exist(driver, "看到的内容")
'''
try:
toast_loc = ("xpath", ".//*[contains(@text,'%s')]"%text)
WebDriverWait(driver, timeout, poll_frequency).until(EC.presence_of_element_located(toast_loc))
return True
except:
return False
toast信息内容获取
代码
def is_toast_exist(driver,timeout=20,poll_frequency=0.5):
'''is toast exist, return toast_text or None
:Agrs:
- driver - 传driver
- timeout - 最大超时时间,默认20s
- poll_frequency - 间隔查询时间,默认0.5s查询一次
:Usage:
is_toast_exist(driver)
'''
try:
toast_loc = ("xpath", "//*[@class=\"android.widget.Toast\"]")
WebDriverWait(driver, timeout, poll_frequency).until(EC.presence_of_element_located(toast_loc))
toast_text = driver.find_element(AppiumBy.XPATH, "//*[@class=\"android.widget.Toast\"]").text
return toast_text
except:
return None
来源:https://ceshizhilu.blog.csdn.net/article/details/122693435
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 前言selenium处理文件上传大致会有两种情况,一种是文件上传使用的是input标签元素,即<input type="fi
- 一、实验目标1、使用 K-means 模型进行聚类,尝试使用不同的类别个数 K,并分析聚类结果。2、按照 8:2 的比例随机将数据划分为训练
- 篇首语:原来改mdb为asp就能防下载是鬼话。 引子:昨天和animator试验了一下,把data.mdb文件改名为data.as
- JSP 注释的详解及简单实例一 三种格式二 举例 <body> <h1>大家好</h1
- 在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等。怎么办?看下面方法一: 利用数组
- ipython notebook经常被我用作debug的工具。今天调试一段代码,里面用到了argparse这个包来解析命令行参数。但是在ip
- 早上我偶然看见一篇介绍两个Python脚本的博文,其中一个效率更高。这篇博文已经被删除,所以我没办法给出文章链接,但脚本基本可以归结如下:f
- 一、INSERT和REPLACEINSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理
- 方法一:简单,得不到参数,只有一个虚拟路径 代码如下:GetUrl =request("url") 例如:http://
- 我们在网页中使用CSS来设置网页、表格和字体大小,一般使用的是网络上较流行的9磅字:<STYLE type=TEXT/CSS
- 具体代码如下所示:<%@ page language="java" import="com.studen
- Dreamweaver MX 2004的强大功能以及更加完善的人性化设置已经深受大家喜爱。在此笔者就谈
- 中间那个控制块,其实也是一个iframe,把他的宽度定义为10。 然后在他的内部js,控制 左右2个iframe. functio
- 1.python解释器安装下载地址:https://www.python.org/打开官网,点击downloads,选择操作系统,以wind
- 本文实例讲述了python中enumerate函数遍历元素用法。分享给大家供大家参考,具体如下:enumerate函数用于遍历序列中的元素以
- 1.selenum:三方库。可以实现让浏览器完成自动化的操作。2.环境搭建2.1 安装:pip install selenium2.2 获取
- 由于最近有个任务需要在python环境下跑,项目是python3.6 + tensorflow1.3.1.现总结安装环境:卸载Python3
- 一、Session 的概念cookie 是在浏览器端保存键值对数据,而 session 是在服务器端保存键值对数据 session 的使用依
- 摘要什么是python对象的标识python对象相等的判断自定义python对象相等的条件python对象的标识python对象标识就是py
- 本文中介绍的主要是SQL语句,请大家不要在Access中使用。SQL的分类:DDL—数据定义语言(CREATE,ALTE