APP自动化测试-5.触屏操作及toast处理
APP自动化测试-5.触屏操作及toast处理
文章目录
- APP自动化测试-5.触屏操作及toast处理
- 前言
- 一、TouchAction常用方法
- 二、toast识别处理
前言
TouchAction主要用来模拟手机页面的触摸点击、滚动、滑动等操作,详情查看官网文档:官方文档
一、TouchAction常用方法
- press:按下,后面和release配合使用,否则会一直处于按下的状态
- release:释放,通常和press配合使用
- moveTo:移动到指定位置,通常和press+release配合使用
- tap:点击
- wait:等待
- longPress:长按
- cancel:取消
- perform:执行
代码示例:
from time import sleepimport pytest as pytest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.common.touch_action import TouchActionclass TestTouch:def setup(self):desired_caps = {"platformName": "android","appium:deviceName": "b1f37e8e","appium:appPackage": "com.jianshu.haruki","appium:appActivity": "com.baiji.jianshu.ui.splash.SplashScreenActivity",# 添加noReset后,会记录该应用之前的操作"noReset": True,# 设置dontStopAppOnReset后,如果应用已打开,则不会关闭应用重新打开"dontStopAppOnReset": True,# 跳过安装及权限设置操作,提升执行速度"skipDeviceInitialization": True}self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 设置隐式等待self.driver.implicitly_wait(3)def teardown(self):self.driver.quit()def test_touch(self):action = TouchAction(self.driver)# 获取屏幕的宽window_rect = self.driver.get_window_rect()width = window_rect['width']height = window_rect['height']# 使用中心点作为x坐标x1 = int(width/2)# 设置y坐标的起始点y_start = int(height * 9/10)y_end = int(height * 1/10)action.press(x=x1, y=y_start).wait(200).move_to(x=x1, y=y_end).release().perform()sleep(5)if __name__ == 'main':pytest.main()
二、toast识别处理
toast是简易的消息提示框,toast特性:
- 为了给当前视图显示一个浮动的显示块,永远不会获得焦点
- toast类的思想:尽量不引起注意,同时又要向用户显示他们需要看到的信息
- toast显示的时间有限,Toast会根据用户设置的显示时间显示后消失
- toast本身是系统级的控件,它归属于系统settings,当一个app发送消息的时候,不是自己造出来的这个弹框,它是发送给系统,由系统统一进行弹框,这类控件不在app内,需要特殊的控件识别方法
toast控件类名称:android.widget.Toast
代码示例:
from time import sleepimport pytest as pytest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.common.touch_action import TouchActionclass TestTouch:def setup(self):desired_caps = {"platformName": "android","appium:deviceName": "b1f37e8e","appium:appPackage": "com.jianshu.haruki","appium:appActivity": "com.baiji.jianshu.ui.splash.SplashScreenActivity",# 添加noReset后,会记录该应用之前的操作"noReset": True,# 设置dontStopAppOnReset后,如果应用已打开,则不会关闭应用重新打开# "dontStopAppOnReset": True,# 跳过安装及权限设置操作,提升执行速度"skipDeviceInitialization": True}self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 设置隐式等待self.driver.implicitly_wait(3)def teardown(self):self.driver.quit()def test_toast(self):self.driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR,'new UiSelector().resourceId("com.jianshu.haruki:id/iv_mine")').click()self.driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("点击登录")').click()self.driver.find_element(AppiumBy.ID, 'com.jianshu.haruki:id/et_account').send_keys('13000000000')self.driver.find_element(AppiumBy.ID, 'com.jianshu.haruki:id/et_verification_code_or_password').send_keys('112345')self.driver.find_element(AppiumBy.ID, 'com.jianshu.haruki:id/tv_user_cb').click()self.driver.find_element(AppiumBy.ID, 'com.jianshu.haruki:id/tv_login').click()# 打印当前页面的dom树print(self.driver.page_source)# 通过classname进行定位print(self.driver.find_element(AppiumBy.XPATH, "//*[@class='android.widget.Toast']").text)# 通过text进行定位print(self.driver.find_element(AppiumBy.XPATH, "//*[contains(@text, '验证码无效')]").text)sleep(3)if __name__ == 'main':pytest.main()
APP自动化测试-5.触屏操作及toast处理相关推荐
- 软件测试 app自动化03 toast元素的定位 滑屏操作 触屏操作
文章目录 1 toast元素的定位 2 滑屏操作 2.1 坐标 2.2 滑屏分类 3 触屏操作 3.1 查看元素坐标 3.2 例子 小结 1 toast元素的定位 toast元素就是建议的消息提示框, ...
- UIAutomator2.0详解(UIDevice篇----触屏操作1)
UIDevice中有20个方法,是关于触屏操作的,占方法总数的三分之一.数量看似很多,仔细分析一下,也就几类. (1)功能键型,7个,HOME,RECENT,BACK,DELETE,ENTER,MEN ...
- WPF Multi-Touch 开发:高级触屏操作(Manipulation)
在上一篇中我们对基础触控操作有了初步了解,本篇将继续介绍触碰控制的高级操作(Manipulation),在高级操作中包含了一些特殊的触屏手势:平移.缩放.旋转,当然在WPF 中无需自行开发这些手势,只 ...
- unity中2D飞机游戏手指触屏操作的问题
unity中2D飞机游戏手指触屏操作的问题 菜鸡记录一下在项目中遇到的坑 下面就是我用的代码 if (UnityEngine.Input.touchCount > 0) //每一帧触摸到的屏幕的 ...
- WPF Multi-Touch 开发:基础触屏操作(Raw Touch)
WPF Multi-Touch 开发:基础触屏操作(Raw Touch) 多点触控(Multi-Touch)就是通过与触屏设备的接触达到人与应用程序交互的操作过程.例如,生活中经常使用的触屏手机.触屏 ...
- android 使用shell模拟触屏_Appium常用操作之「微信滑屏、触屏操作」
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.滑屏操作 1.访问之后,马上就滑屏可以吗? 2.连续实现 2 次滑屏 3.代码 二.模拟触屏 ...
- 软件测试 | app自动化测试(Android)--触屏操作自动化
本文节选自霍格沃兹测试开发学社内部教材 获取更多相关资料 工作中经常需要对应用的页面进行一些滑动.长按.拖动等手势操作,而AppiumDriver 提供了一个模拟手势操作的辅助类 TouchActio ...
- 为触屏手机而设计系列1—拇指操作的热区死角与控件尺寸
Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定. 触屏技术最早被应用到手机上要追溯到1999年(motorola A6 ...
- 为触屏手机而设计系列1——拇指操作的“热区/死角”与“控件尺寸”
Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定. 触屏技术最早被应用到手机上要追溯到1999年(motorola A ...
最新文章
- Java经典面试题总结(一)
- C++学习笔记之二:通过结构体来理解类
- JDK14的新特性:Lombok的终结者record
- POS时机未到,POW强攻是实现全球货币的正确道路
- 【[SHOI2015]超能粒子炮·改】
- 使用可视化工具redisclient连接redis
- centos6 升级openssh7.0
- K8S之kubectl命令详解及常用示例??
- Oracle merge into用法以及相关例子示例
- 马哥SRE第七周课程作业
- 不同SIP客户端使用说明
- layui扩展组件(组合输入框inputTags)
- android 模拟器 派派,派派怎么在电脑上玩?派派电脑版使用教程
- 月圆之夜,愿永无bug
- 香港主机与美国主机的相同点和不同点
- .mat文件转TIF图片文件,python代码
- 2022-iOS个人开发者账号申请流程
- Activity真正“可见”的时间点
- (27)python类的定义和使用
- QT——可视化界面ui
热门文章
- 思科路由器和交换机被爆有重大漏洞:可被控制或导致瘫痪
- python做的如何给别人用流量_流量怎么共享给别人用
- Oracle 模糊查询like用法
- pandas数据索引
- php什么是微服务_php微服务框架有哪些
- 抖音爆粉的方法该怎么玩
- 关于tensorflow2.0的tf.Session() as sess的说明
- animation 在 电视版的 UC 浏览器没动画
- 8g内存和16g内存区别 mac_「苹果8g和16g的区别」电脑内存4G/8G/16G有什么区别? - seo实验室...
- Java面试题-day03面向对象