当前位置: 首页 > news >正文

自动化测试高级控件交互方法:TouchAction、触屏操作、点按,双击,滑动,手势解锁!

在自动化测试领域中,TouchAction 是一种非常强大的工具,它允许我们模拟用户在设备屏幕上的各种触摸事件。这种模拟不仅限于简单的点击操作,还包括滑动、长按、多点触控等复杂的手势。

点按与双击

点按和双击是触屏设备上最基本的操作之一。在自动化测试中,我们可以使用TouchAction的点击方法(click)和双击方法(doubleClick)来模拟这些操作。通过设定精确的坐标和点击次数,我们可以轻松地对App中的按钮、链接等元素进行测试。

# 导入Appium库from appium import webdriver
# 初始化设备、应用等配置(这里省略具体配置)# ...
# 点按操作driver.tap([(x, y), ], duration=None)  # (x, y)为点击坐标
# 双击操作element = driver.find_element_by_id("some_element_id")action = webdriver.TouchAction(driver)action.double_tap(element).perform()

滑动

滑动操作在App中非常常见,如滑动列表、切换页面等。通过TouchAction的滑动方法(swipe),我们可以模拟这些滑动操作,对App的滑动交互进行测试。

# 滑动操作start_x, start_y = 100, 150  # 起始坐标end_x, end_y = 400, 150  # 结束坐标duration = 1000  # 滑动持续时间(毫秒)action = webdriver.TouchAction(driver)action.press(x=start_x, y=start_y).wait(duration).move_to(x=end_x, y=end_y).release().perform()

手势解锁

手势解锁是许多App为了保护用户隐私而采用的一种安全机制。在自动化测试中,如何模拟这种复杂的手势操作呢?别担心,TouchAction同样可以胜任这一任务。通过设定多个点按和滑动操作的组合,我们可以轻松模拟出手势解锁的整个过程。

# 手势解锁操作(以画“Z”形手势为例)z_points = [(100, 200), (200, 100), (300, 200)]  # Z形手势的坐标点action = webdriver.TouchAction(driver)for point in z_points:    action.press(x=point[0], y=point[1]).wait(100).move_to(x=point[0]+10, y=point[1]+10).release()action.perform()

通过以上高级控件交互方法,我们可以更加全面、准确地测试App的各种功能和交互体验。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 编程的法则 迪米特法则(Law of Demeter)也称为“最少知识原则(Principle of Least Knowledge)包括如何实践
  • 微服务之间Feign调用
  • mac M1 创建Mysql8.0容器
  • C# Blazor Server与JS互操作无法获取大数据量返回值
  • 2024-07-13 Unity AI状态机2 —— 项目介绍
  • Dify中的高质量索引模式实现过程
  • 华为USG6000V防火墙NAT智能选举
  • Python和C++行人轨迹预推算和空间机器人多传感融合双图算法模型
  • 字节码编程之bytebuddy结合javaagent支持多种监控方式
  • 【Spring全家桶系列之核心篇 | Spring Cloud】 - 第七章 掌握Gateway核心技术,实现高效路由与转发
  • 灵雀云AML:赋能金融AI,构建数智时代核心竞争力
  • Android SurfaceView 组件介绍,挖洞原理详解
  • Apache httpd-vhosts.conf 配置详解(附Demo)
  • 【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十一)-无人机服务可用性用例需求
  • 不常用的第三方服务集成
  • [PHP内核探索]PHP中的哈希表
  • 2017届校招提前批面试回顾
  • es6要点
  • js如何打印object对象
  • nodejs实现webservice问题总结
  • OSS Web直传 (文件图片)
  • Python3爬取英雄联盟英雄皮肤大图
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 前端面试题总结
  • 《码出高效》学习笔记与书中错误记录
  • 带你开发类似Pokemon Go的AR游戏
  • ​水经微图Web1.5.0版即将上线
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #if和#ifdef区别
  • (2.2w字)前端单元测试之Jest详解篇
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (pytorch进阶之路)扩散概率模型
  • (动态规划)5. 最长回文子串 java解决
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (二)原生js案例之数码时钟计时
  • (二十三)Flask之高频面试点
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (分布式缓存)Redis持久化
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)基于IDEA的JAVA基础1
  • (转)LINQ之路
  • (转)Windows2003安全设置/维护
  • (转)winform之ListView
  • (转)平衡树
  • (转载)Linux网络编程入门
  • .a文件和.so文件
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别