前戏

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. sql语句优化的30种方法

    转载于:https://www.cnblogs.com/Little-Li/p/8031295.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的 ...

  2. CentOS设置主机名称

    1.查看主机名,使用命令hostname: 2.修改主机名,修改/etc/hostname文件

  3. golang基础之初识

    golang 简介 很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目.在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的 ...

  4. OAuth2.0授权码模式

    OAuth2.0简单说就是一种授权的协议,OAuth2.0在客户端与服务提供商之间,设置了一个授权层(authorization layer).客户端不能直接登录服务提供商,只能登录授权层,以此将用户 ...

  5. ThinkPHP查询数据的时候toArray()报错解决办法

    当查找不到数据时toArray()会报错,如图 解决办法:先查找数据,然后加个判断,如果有数据再转化为数组,如果没有数据就给个空值,不想代码继续往下执行就return false;

  6. opencv 图像旋转

    理论 http://www.cnblogs.com/wangguchangqing/p/4045150.html 翻开任意一本图像处理的书,都会讲到图像的几何变换,这里面包括:仿射变换(affine ...

  7. python常用库简单使用( PyPDF2 )

    PyPDF2学习 1  这个模块的名字对大小写是敏感的,所以,确保y是小写的,其他字母都是大写的

  8. IOS之UIColor

    转自:http://blog.csdn.net/wudizhukk/article/details/8607229 UIColor常见用法,废话少说 直接网上抄来记录下,凭空想还真有点想不起来,最近记 ...

  9. redis 配置及编写启动脚本

    #!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the ...

  10. wpf 代码设置图片路径(后台和xamll)

    项目中经常使用背景图片,当一个小组共通开发时,路径的选择应该是在项目运行的固定文件夹下 此时,可用代码实现:pack://SiteOfOrigin:,,,/Images/Icons/HomePageB ...