当前位置: 首页 > 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的各种功能和交互体验。

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

软件测试面试文档

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

在这里插入图片描述

http://www.lryc.cn/news/398303.html

相关文章:

  • leetcode165.解密数字
  • 对为什么react需要时间分片,vue3不需要的浅学习
  • 电脑干货分享 · 删除资源管理器导航栏 OneDrive 及 3D 对象
  • 无人机之穿越机注意事项篇
  • 防御课第一次作业第一天笔记整理
  • Git协作
  • Three.js机器人与星系动态场景(四):封装Threejs业务组件
  • 亚马逊云科技 Amazon Bedrock 构建 AI 应用体验
  • 程序员标准简历模板
  • 物联网设计竞赛_10_Jetson Nano中文转汉语语音
  • XML Schema 指示器
  • iOS UITableView自带滑动手势和父视图添加滑动手势冲突响应机制探索
  • RAG实践:ES混合搜索BM25+kNN(cosine)
  • 论文去AIGC痕迹:避免AI写作被检测的技巧
  • C#使用异步方式调用同步方法的实现方法
  • 【Go系列】 Go语言的入门
  • Dify 与 Xinference 最佳组合 GPU 环境部署全流程
  • MICCAI 2024Centerline Boundary Dice Loss for Vascular Segmentation
  • golang验证Etherscan上的智能合约
  • Visual Studio编译优化选项
  • sql业务场景分析思路参考
  • Django权限系统如何使用?
  • 基于整体学习的大幅面超高分遥感影像桥梁目标检测(含数据集下载地址)
  • 逻辑回归模型(非回归问题,而是解决二分类问题)
  • QT的OpenGL渲染窗QOpenGLWidget Class
  • 单元测试和集成测试
  • 【JAVA入门】Day15 - 接口
  • ES6 之 Set 与 Map 数据结构要点总结(一)
  • 一文学会用RKE部署高可用Kubernetes集群
  • 数据加密的常见方法