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处理相关推荐

  1. 软件测试 app自动化03 toast元素的定位 滑屏操作 触屏操作

    文章目录 1 toast元素的定位 2 滑屏操作 2.1 坐标 2.2 滑屏分类 3 触屏操作 3.1 查看元素坐标 3.2 例子 小结 1 toast元素的定位 toast元素就是建议的消息提示框, ...

  2. UIAutomator2.0详解(UIDevice篇----触屏操作1)

    UIDevice中有20个方法,是关于触屏操作的,占方法总数的三分之一.数量看似很多,仔细分析一下,也就几类. (1)功能键型,7个,HOME,RECENT,BACK,DELETE,ENTER,MEN ...

  3. WPF Multi-Touch 开发:高级触屏操作(Manipulation)

    在上一篇中我们对基础触控操作有了初步了解,本篇将继续介绍触碰控制的高级操作(Manipulation),在高级操作中包含了一些特殊的触屏手势:平移.缩放.旋转,当然在WPF 中无需自行开发这些手势,只 ...

  4. unity中2D飞机游戏手指触屏操作的问题

    unity中2D飞机游戏手指触屏操作的问题 菜鸡记录一下在项目中遇到的坑 下面就是我用的代码 if (UnityEngine.Input.touchCount > 0) //每一帧触摸到的屏幕的 ...

  5. WPF Multi-Touch 开发:基础触屏操作(Raw Touch)

    WPF Multi-Touch 开发:基础触屏操作(Raw Touch) 多点触控(Multi-Touch)就是通过与触屏设备的接触达到人与应用程序交互的操作过程.例如,生活中经常使用的触屏手机.触屏 ...

  6. android 使用shell模拟触屏_Appium常用操作之「微信滑屏、触屏操作」

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.滑屏操作 1.访问之后,马上就滑屏可以吗? 2.连续实现 2 次滑屏 3.代码 二.模拟触屏 ...

  7. 软件测试 | app自动化测试(Android)--触屏操作自动化

    本文节选自霍格沃兹测试开发学社内部教材 获取更多相关资料 工作中经常需要对应用的页面进行一些滑动.长按.拖动等手势操作,而AppiumDriver 提供了一个模拟手势操作的辅助类 TouchActio ...

  8. 为触屏手机而设计系列1—拇指操作的热区死角与控件尺寸

    Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定. 触屏技术最早被应用到手机上要追溯到1999年(motorola A6 ...

  9. 为触屏手机而设计系列1——拇指操作的“热区/死角”与“控件尺寸”

    Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定.  触屏技术最早被应用到手机上要追溯到1999年(motorola A ...

最新文章

  1. Java经典面试题总结(一)
  2. C++学习笔记之二:通过结构体来理解类
  3. JDK14的新特性:Lombok的终结者record
  4. POS时机未到,POW强攻是实现全球货币的正确道路
  5. 【[SHOI2015]超能粒子炮·改】
  6. 使用可视化工具redisclient连接redis
  7. centos6 升级openssh7.0
  8. K8S之kubectl命令详解及常用示例??
  9. Oracle merge into用法以及相关例子示例
  10. 马哥SRE第七周课程作业
  11. 不同SIP客户端使用说明
  12. layui扩展组件(组合输入框inputTags)
  13. android 模拟器 派派,派派怎么在电脑上玩?派派电脑版使用教程
  14. 月圆之夜,愿永无bug
  15. 香港主机与美国主机的相同点和不同点
  16. .mat文件转TIF图片文件,python代码
  17. 2022-iOS个人开发者账号申请流程
  18. Activity真正“可见”的时间点
  19. (27)python类的定义和使用
  20. QT——可视化界面ui

热门文章

  1. 思科路由器和交换机被爆有重大漏洞:可被控制或导致瘫痪
  2. python做的如何给别人用流量_流量怎么共享给别人用
  3. Oracle 模糊查询like用法
  4. pandas数据索引
  5. php什么是微服务_php微服务框架有哪些
  6. 抖音爆粉的方法该怎么玩
  7. 关于tensorflow2.0的tf.Session() as sess的说明
  8. animation 在 电视版的 UC 浏览器没动画
  9. 8g内存和16g内存区别 mac_「苹果8g和16g的区别」电脑内存4G/8G/16G有什么区别? - seo实验室...
  10. Java面试题-day03面向对象