Appium自动化测试中获取Toast信息操作

 更新时间:2022年02月15日 09:29:26   作者:测试之路king  
本文主要介绍了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

到此这篇关于Appium自动化测试中获取Toast信息操作的文章就介绍到这了,更多相关Appium 获取Toast内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux下python使用sendmail发送邮件

    linux下python使用sendmail发送邮件

    这篇文章主要为大家详细介绍了linux下python使用sendmail发送邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Python实现的爬取百度贴吧图片功能完整示例

    Python实现的爬取百度贴吧图片功能完整示例

    这篇文章主要介绍了Python实现的爬取百度贴吧图片功能,结合完整实例形式分析了Python实现的百度贴吧图片爬虫相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • Python使用re模块正则提取字符串中括号内的内容示例

    Python使用re模块正则提取字符串中括号内的内容示例

    这篇文章主要介绍了Python使用re模块正则提取字符串中括号内的内容,结合实例形式分析了Python使用re模块进行针对括号内容的正则匹配操作,并简单解释了相关修正符与正则语句的用法,需要的朋友可以参考下
    2018-06-06
  • python3检查字典传入函数键是否齐全的实例

    python3检查字典传入函数键是否齐全的实例

    这篇文章主要介绍了python3检查字典传入函数键是否齐全的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python中的flask框架Jinja 模板入门教程

    python中的flask框架Jinja 模板入门教程

    这篇文章主要介绍了 python中的flask框架Jinja 模板入门,Jinja 模板其实是 html 文件,一般情况下放在 Flask 工程的 /templates 目录下,对python flask Jinja 模板相关知识感兴趣的朋友一起看看吧
    2022-04-04
  • 详解Django之auth模块(用户认证)

    详解Django之auth模块(用户认证)

    这篇文章主要介绍了详解Django之auth模块(用户认证),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 分享3个简单的Python代码高效运行技巧

    分享3个简单的Python代码高效运行技巧

    这篇文章主要介绍了分享3个简单的Python代码高效运行技巧,下面主要分享三个有效的,方便理解的,执行高效的实用技巧,需要的朋友可以参考一下
    2022-03-03
  • 怎样确定K-means算法中的k值

    怎样确定K-means算法中的k值

    这篇文章主要介绍了怎样确定K-means算法中的k值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python数据集库Vaex秒开100GB加数据

    Python数据集库Vaex秒开100GB加数据

    这篇文章主要为大家介绍了Python数据集库Vaex秒开100GB加数据实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python3利用scapy局域网实现自动多线程arp扫描功能

    Python3利用scapy局域网实现自动多线程arp扫描功能

    这篇文章主要介绍了Python3利用scapy局域网实现自动多线程arp扫描功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论