实现快速多点触控,让App自动化测试操作更方便

news2024/11/17 12:59:29

目录

 前言:

PyAutoGUI简介:

 代码示例:

总结:


 前言:

随着智能设备的普及,触摸点的数量和触摸操作的复杂度也在不断增加。要想在触控界面上获得更高效率和更好的体验,多点触控操作是必不可少的。然而,在进行多点触控操作时,我们常常需要同时按下不同位置的多个触控点,这就面临着一定的难度。

自动化实现多点触控操作是一个值得探索的领域。本文将介绍一个使用Python 3编写的自动化多点触控实现代码,并详细介绍该代码的原理和实现。

PyAutoGUI简介:

首先,我们需要安装并导入Python库中的PyAutoGUI和keyboard。PyAutoGUI是一个跨平台的GUI自动化库,它可以模拟人工操作鼠标、键盘和其他系统事件。keyboard是一个允许你轻松处理鼠标和键盘输入的库。

import pyautogui
import keyboard

 代码示例:

接下来,我们需要准备一台能够进行多点触控操作的触摸屏幕,并将其连接到计算机上。现在,我们来实现一个多点触控的实例,假设我们需要在屏幕左上角和右下角同时按下两个坐标点。

# 获取屏幕分辨率
screenWidth, screenHeight = pyautogui.size()

# 计算左上角和右下角屏幕中心点坐标(假设需要按下的点)
point1_x, point1_y = int(screenWidth*0.2), int(screenHeight*0.2)
point2_x, point2_y = int(screenWidth*0.8), int(screenHeight*0.8)

# 模拟同时按下左上角和右下角的触控点
pyautogui.mouseDown(point1_x, point1_y)
pyautogui.mouseDown(point2_x, point2_y)

# 等待一段时间
pyautogui.time.sleep(1)

# 释放触控点
pyautogui.mouseUp(point1_x, point1_y)
pyautogui.mouseUp(point2_x, point2_y)

在上述代码中,我们首先通过`pyautogui.size()`获取了屏幕的分辨率,然后计算出了左上角和右下角的触控点坐标。接着,我们通过`pyautogui.mouseDown()`模拟按下了两个触控点,然后通过`pyautogui.time.sleep()`函数让程序在按下两个触控点后等待一段时间以使操作生效。最后,我们通过`pyautogui.mouseUp()`函数释放两个触控点。

通过以上Python代码,我们已经实现了自动化多点触控操作。这样的代码可以在需要进行多点触控操作的场景中,例如游戏控制、浏览器中的缩放与滑动等等用途。

总结:

总而言之,本文介绍了如何使用PyAutoGUI和keyboard Python库实现自动化多点触控操作。PyAutoGUI 库具有跨平台的特性,因此它适用于 Windows、macOS 和 Linux 等系统环境。利用这套代码,我们可以更方便高效地进行多点触控操作,提升人机交互效率,从而使得触控界面的应用更加广泛。

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,如果你用得到的话可以直接拿走,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

获取方式:留言【自动化测试】即可获取
【自动化测试交流】:574737577(进群备注ccc)icon-default.png?t=N4HBhttp://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=9iUWaWERff_tuvSCfW9ySVRRTSXGnIxD&authKey=R%2BGUftfEdK%2BNzoIceXf5kGkKdfDfY83a1mE%2B8azr4GYfBfh1WiKSVlU8calkgh8c&noverify=0&group_code=574737577

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/554958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

历经70+场面试,我发现了大厂面试的套路都是···

今年的金三银四刚刚过去,我又想起了我在去年春招时面试了50余家,加上暑期实习面试了20余家,加起来也面试了70余场的面试场景了。 基本把国内有名的互联网公司都面了一遍,不敢说自己的面试经验很丰富,但也是不差的。 …

【JAVAEE】认识网络及网络通信

目录 1.网络发展史 1.1独立模式 1.2网络互连 1.2.1局域网 1.2.2广域网 2.网络通信基础 2.1IP地址 2.2端口号 2.3协议 2.4五元组 2.5协议分层 2.5.1什么是协议分层 2.5.2协议分层的作用 2.5.3TCP/IP五层(或四层)模型 3.封装和分用 1.网络发…

调用百度API自动生成春联

目录 1、作者介绍2、百度智能春联介绍录2.1 功能介绍2.2 技术特色 3、智能春联API接口介绍3.1 请求参数3.2 返回参数 4. 操作流程5. 代码实现 1、作者介绍 范宇帅,男,西安工程大学电子信息学院,2022级研究生 研究方向:多机器人协…

〖C++11〗线程库详解

「前言」文章是关于C11线程库相关的 「归属专栏」C嘎嘎 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 请不要把陌生人的些许善意, 视为珍稀的瑰宝, 却把身边亲近人的全部付出, 当做天经地义的事情&am…

比赛记录:Codeforces Round 874 (Div. 3) A~G

传送门:CF 前题提要:赛时A出了5道题,并且都是一遍过的,F题也已经找到了解决方法,但是没时间完成了.以为应该能上分,但是没想到赛后E题被hack掉了…绝了.然后打完这场 d i v 3 div3 div3后立马阳了,加上一大堆烦心事(包括但不限于各类考试).就导致现在才写出这篇题解. A题:A. …

移动机器人 | 火星探矿机器人

01、需求分析 “火星探矿机器人”旨在要开发若干个自主机器人,将其送到火星上去搜寻和采集火星上的矿产资源。 火星环境对于开发者和自主机器人而言事先不可知,但是可以想象火星表面会有多样化的地形情况,如河流、巨石、凹坑等,机…

公司从字节招来一个28K的测试工程师,让我见识到了什么才是真正的测试天花板

今天上班开早会就是新人见面仪式,听说来了个很厉害的大佬,年纪还不大,是上家公司离职过来的,薪资已经达到中高等水平,很多人都好奇不已,能拿到这个薪资应该人不简单,果然,自我介绍的…

队列——“数据结构与算法”

各位CSDN的uu们你们好呀,又好久不见啦,最近有点摆烂,甚是惭愧!!!!今天,小雅兰的内容是队列,下面,让我们进入队列的世界吧!!&#xff0…

Trigger +Pipeline 完整实战案例

2.4.1 案例环境说明 示例项目:http://code.icloud2native.com/root/spring-boot-helloWorld.git 触发机制: 用户推送代码至项目仓库由Push Hook 自东触发pipeline的流水线的执行 2.4.2 项目实现 1、在k8s上部署一个gitlab,前面上节已经完成。 2、运…

海睿思分享 | 类chatgpt模型在信息抽取领域的应用

大语言模型(LLM,Large Language Model)是指能够处理海量数据、拥有百亿级参数的深度学习模型,它已成为⼈⼯智能领域中的新热点。2022 年 11 ⽉ 30 号 ChatGPT 发布,其卓越的性能表现给整个⾏业带来了巨⼤的冲击。⼈们不…

2023年春季期末网球理论复习资料

(含2023/2022/2021时事题,基于2012年期末网球理论复习资料修改) 目录 网球的起源 网球的主要赛事 三大网球协会 大满贯 网球的场地 1. 球场线 2. 网球的球网 3.场地的类型 网球的规则 1.发球规则 2.计分方法 3.通则 4.赛…

在Octane中提升渲染速度的技巧(第1部分)

Mike Griggs是一位数字内容创建者,在为众多客户创建Mograph,VFX和CGI方面拥有超过二十年的经验。迈克格里格斯(Mike Griggs)在Creative Bloq上写了很多博客,该博客是国际媒体集团和领先的数字出版商Future plc的一部分…

手势识别q

本文介绍使用光电传感器的手势识别。 光电传感器手势识别区别于视觉手势识别,没有复杂的算法。LED发射光,当光线接触到手发生反射,反射光被传感器检测到,传感器检测到不同的手势反射的光不同,再根据芯片的内置算法判别…

【笔试强训编程题】Day5.( 统计回文 45842 ) 和( 连续最大和 58539)

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训编程题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!! 文章目录…

【嵌入式烧录/刷写文件】-2.5-Fill填充Intel Hex文件

案例背景(共8页精讲):该篇将告诉你,如何对一个Hex文件进行填充: 对“起始地址”和“结束地址”内的非连续的Block块,进行填充;自定义填充范围。 目录 1 为什么要“Fill填充” 2 使用Vector HexView工具“填充”Hex…

【Linux0.11代码分析】09 之 ELF可执行程序02 - Section Headers解析

【Linux0.11代码分析】09 之 ELF可执行程序02 - Section Headers解析 一、ELF概述二、ELF的组成结构2.1 ELF header:解析出 section headers 含31个section节和 program headers 含13个segment段2.2 Section Headers:获取当前程序的31个section节区信息2…

18-03 MySQL高可用方案与选择

主从复制 读写分离 流程 原理 bin log STATEMENT 优点:记录的是执行的SQL,比较省空间,降低了主从复制时的IO开销缺点:由于记录的是SQL,所以MySQL多个节点之间复制的时候,特定场景下会导致数据不一致的情况 ROW 优点…

【多线程进阶二】JUC工具类 线程安全的集合类 死锁

目录 一、JUC工具类 🍅1、Callable接口 🍅2、ReentrantLock 🍅3、原子类 🍅4、Semaphore信号量 🍅5、CountDownLatch 二、线程安全的集合类 ​🍅1、多线程环境下,怎么使用线程安全…

第十三届蓝桥杯国赛JavaB组题解

A. 重合次数 思路: 枚举不同的时刻,判断哪些时刻秒针和分针表示的数字是相同的。这道题坑就坑在:xx:59:59 xx:00:00分针和时。也就是说一个小时会重叠两次。 题目要求是分钟和秒钟的重叠次数,故时钟,分钟,秒钟同时重叠的次数不算(这题还是有点咬文嚼字了…

MySQL---事务

1. 事务操作 开启事务:Start Transaction 任何一条DML语句(insert、update、delete)执行, 标志事务的开启命令:BEGIN 或 START TRANSACTION 提交事务:Commit Transaction 成功的结束,将所有的DML语句操作历史记录…