前戏

Android中的Toast是一种简易的消息提示框,当视图显示给用户,在应用程序中显示为浮动,和Dialog不一样的是,它永远不会获得焦点,无法被点击

Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到,而且Toast显示的时间有限,一般3秒左右就消失了,因此使用传统的元素定位方式,是无法定位到Toast元素的

Appium1.6.3开始支持识别Toast内容,主要是基于uiAutomator2,因此需要在Capability配置如下参数

desired_caps['automationName']='uiautomator2'

安装appium-uiautomator2-driver安装命令如下

cnpm install appium-uiautomator2-driver

安装好后在对应目录下可以看到对应的文件

import pytest
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait class Testcsca():
def setup(self):
caps = {}
caps["platformName"] = "Android"
# caps["deviceName"] = "127.0.0.1:62001"
caps["deviceName"] = "CLB0219314000452"
caps["appPackage"] = "com.jgw.csca"
caps["appActivity"] = "com.jgw.csca.view.activity.LoginActivity"
caps["platfromVersion"] = "9.0.0"
caps["autoGrantPermissions"] = True # 设置自动授权权限
caps['unicodeKeyboard'] = True # 输入中文时要加,要不然输入不了中文
caps['resetKeyboard'] = True # 输入中文时要加,要不然输入不了中文
caps['automationName'] = 'uiautomator2' self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
self.driver.implicitly_wait(20) def test_login(self): self.driver.find_element_by_android_uiautomator('new UiSelector().text("请输入用户名")').send_keys('www') self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.jgw.csca:id/et_pwd")').send_keys('balabala') self.driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.Button")').click() message = "用户密码错误" # 设置toast的错误信息
element_message = '//*[@text=\'{message}\']'.format(message=message) # 拼接成xpath的格式
print('message:', element_message) toast_element = WebDriverWait(self.driver, 5).until(lambda x: x.find_element_by_xpath(element_message))
print('toast:',toast_element.text)

结果:

message: //*[@text='用户密码错误']
toast: 用户密码错误

appium--Toast元素识别的更多相关文章

  1. Appium之Toast元素识别

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

  2. appium入门元素识别参考

    https://www.cnblogs.com/miniren/p/7365885.html#top

  3. python3+Appium自动化04-Toast元素识别

    什么是toast? 如下图,“再按一次退出程序”,这就是toast 如何定位toast元素? Appium1.6.3开始支持识别Toast内容,主要基于UiAutomator2 想定位toast元素, ...

  4. Appium自动化测试之微信h5元素识别和代码实战

    总会有人问微信的自动化测试怎么做.其实我不太明白,为啥你要对ta做自动化测试啊,除非你们公司产品是基于微信做的开发否则没必要.即使一个公众号我也觉得没必要做自动化测试,基本功能点下没问题就可以了,毕竟 ...

  5. python_appium 之使用Appium Inspector定位工具进行元素识别,编写验证demo

    一.前提条件 appium环境搭建完成,模拟器Genymotion 安装完成,且已经下载成功了模拟设备 二.元素识别操作步骤及demo 1.进入appium如下菜单 2.填写Desired Capab ...

  6. Tost元素识别

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

  7. 初探appium之元素定位(1)

    无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多 ...

  8. Selenium示例集锦--常见元素识别方法、下拉框、文本域及富文本框、鼠标操作、一组元素定位、弹窗、多窗口处理、JS、frame、文件上传和下载

    元素定位及其他操作 0.常见的识别元素的方法是什么? driver.find_element_by_id() driver.find_element_by_name() driver.find_ele ...

  9. Appium查询元素方法

    Appium查询元素有两种方式 一种是使用UI Automator: 参考 https://www.cnblogs.com/gongxr/p/10906736.html 另一种是使用appium的In ...

随机推荐

  1. linux jdk1.8 64位下载永久地址,ubuntu,centos,java

    https://pan.baidu.com/s/1A4cl3vUWCtiHxJ9eHK2ApQ  密码:j8dg

  2. java 常见高级开发面试题 非算法等特定岗 一

    基础1.List和Set区别 List:1.可以允许重复的对象. 2.可以插入多个null元素. 3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序. 4.常用的实现类有 Arra ...

  3. Linux中$()和${}区别(转)

    文章转自  https://blog.csdn.net/hxchuangxiaochuan/article/details/81204084 $( )中放的是命令,相当于` `,例如todaydate ...

  4. Azure DevOps Server(TFS) 客户端分析

    Azure DevOps Server(TFS) 是微软公司的软件协作开发管理平台产品,为软件研发.测试.实施提供全流程的服务.作为一款应用服务器产品,他的客户端是什么,在哪里下载客户端?我们在项目实 ...

  5. Unity Shader NPR 卡通渲染

    卡通渲染的主要原理包含两个方面: 1.轮廓线的描边效果 2.模型漫反射离散和纯色高光区域的模拟 描边: 描边的实现方法采用将模型的轮廓线顶点向法线(或顶点)的方向扩展一定的像素得到.也可通过边缘检测( ...

  6. 使用OpenCL提升OpenCV图像处理性能 | speed up opencv image processing with OpenCL

    本文首发于个人博客https://kezunlin.me/post/59afd8b3/,欢迎阅读最新内容! speed up opencv image processing with OpenCL G ...

  7. TiDB 压力测试报告

    (转载自公众号DBATech) 一.测试环境 1.tidb 集群架构: 测试使用最基本的TiDB架构.即 3个tidb-server节点+ 3个tikv节点 + 3个pd节点. 2.tidb集群的部署 ...

  8. 小记 .NET Core 3.0 下 WPF 是如何运行的

    1. 解决方案架构 如图: 2. 生成的代码 如图: /// <summary> /// App /// </summary> public partial class App ...

  9. kubernetes 之一些报错

    1.kubelet与docker的Cgroup Driver不一致导致的报错 7月 :: kubeadm-master kubelet[]: W0701 :: watcher.go:] Error w ...

  10. 『月之谜 数位dp』

    月之谜 Description 打败了Lord lsp 之后,由 于lqr 是一个心地善良的女孩 子,她想净化Lord lsp 黑化的 心,使他变回到原来那个天然 呆的lsp--在倒霉的光之英 雄ap ...