用Airtest快速实现手机文件读写与删除功能

news2024/11/16 2:41:18

1. 前言

前几天有同学留言,能不能安排“读写手机文件”的示例。我们今天就来实现这个小功能。

当然,熟悉adb的同学,看到这个需求,肯定很开心,不就是一个 adb pushadb pull 嘛,非常简单呀。

确实如此,那结合Airtest,我们该如何写脚本呢?接下来我们就详细看看。

2. 手机文件读写与删除功能

1)adb知识

Airtest不仅给我们提供了连接和操控手机的功能,还封装了绝大部分adb功能供我们便捷使用,以“从手机上复制文件到本地计算机”为例,使用adb指令的话,是这样的:

adb pull <src> <dst>

其中:

  • src:要传输的 Android 文件路径
  • dst:要传输到的本地计算机路径

2)Airtest封装的adb功能

而在Airtest里面,adb功能封装在 irtest.core.android 模块里面,我们可以编写下述脚本实现 adb pull 指令的功能:

from airtest.core.android import *

device().adb.pull(scr,dst)

3)文件读写与删除功能实现

了解这些之后,我们就可以非常轻松地用Airtest实现手机文件读写与删除功能啦:

image

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
from airtest.core.android import *
auto_setup(__file__)

dev = device()

phone_file = r"/sdcard/Download/test.png"  # 手机文件路径
local_path = r"E:/test_file/"  # 电脑存储路径

local_file = r"E:/test_file/test1.png"  # 电脑文件路径
phone_path = r"/sdcard/Download/"  # 手机存储路径

del_file = r"/sdcard/Download/test1.png"  # 要删除的手机文件

# 从手机上复制文件到本地
def pull_file():
    dev.adb.pull(phone_file,local_path)
    print("文件已复制到本地")

# 将本地文件推送到手机
def push_file():
    dev.adb.push(local_file,phone_path)
    print("文件已推送到手机")

# 删除手机上的文件
def delete_file():
    shell("rm %s" % (del_file))
    print("手机文件已删除")
    
if __name__ == '__main__':
    pull_file()
    push_file()
    delete_file()

PS:Airtest里的 device().adb.pulldevice().adb.push 都支持中文路径。

3. 小结

今天的小需求就实现到这里啦。其实,用Airtest封装的adb能力,还可以帮助我们实现非常多有趣的小场景,感兴趣的同学可以上手尝试下。

另外,有其它想要实现的功能,欢迎给我们留言哦!

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

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

相关文章

算法通关村——原来滑动窗口如此简单

1. 子数组最大平均数 I 最大平均数 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组&#xff0c;并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,12…

centos中得一些命令 记录

redis命令 链接redis数据库的命令 redis-cli如果 Redis 服务器在不同的主机或端口上运行&#xff0c;你需要提供相应的主机和端口信息。例如&#xff1a; redis-cli -h <hostname> -p <port>连接成功后&#xff0c;你将看到一个类似于以下的提示符&#xff0c;表…

基于PHP实现的计算机信息管理学院网站

《[含文档PPT源码等]精品基于PHP实现的计算机信息管理学院网站》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Windows 8 开发语言&#xff1a;php 前端技术&am…

1688商品详情 API

1688商品详情 API 1688 商品详情item_get接入测试 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_…

【Sword系列】Vulnhub靶机HACKADEMIC: RTB1 writeup

靶机介绍 官方下载地址&#xff1a;https://www.vulnhub.com/entry/hackademic-rtb1,17/ 需要读取靶机的root目录下key.txt 运行环境&#xff1a; 虚拟机网络设置的是NAT模式 靶机&#xff1a;IP地址&#xff1a;192.168.233.131 攻击机&#xff1a;kali linux&#xff0c;IP地…

ArcGIS Enterprise + ArcGIS Pro 常用服务类型发布

发布前设置 门户连接 首先Pro需要先连接portal 添加portal门户地址&#xff0c;注意只到WA一级地址&#xff0c;并登录&#xff1a; 登录完成后&#xff0c;右键&#xff0c;设置为活动门户&#xff1a; 1. 发布动态地图服务 关联数据文件夹&#xff1a; 拖拽数据到地图…

Fiddler安装与使用教程(1) —— 软测大玩家

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

【附安装包】Stata16安装教程

软件下载 软件&#xff1a;Stata版本&#xff1a;16语言&#xff1a;简体中文大小&#xff1a;338.13M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨下载链接&#xff1a;https://pan.baidu.com/s/…

骨传导耳机弊端有哪些?用骨传导耳机有好处吗?

其实任何一款耳机都有它的好处和弊端&#xff0c;最近火热的骨传导耳机也不例外&#xff0c;“骨传导”其实就是让我们能够听到声音的传播方式之一&#xff0c;它通过人体的下颚骨传到耳蜗&#xff0c;并激动到耳蜗中的听觉毛细胞&#xff0c;从而产生电子信号&#xff0c;让我…

C++信息学奥赛1180:分数线划定

#include <bits/stdc.h> using namespace std; int main() {int n, a;cin >> n >> a; // 输入 n 和 aint id[n], arr[n]; // 定义两个长度为 n 的数组 id 和 arr&#xff0c;用于存储输入的数据for (int i 0; i < n; i){cin >> id[i] >> arr…

丰台区北宫镇举办“丰宜福台·书香北宫”2023年书画交流活动

2023年8月30日&#xff0c;北京市丰台区北宫镇举办了一场盛大的书画交流活动&#xff0c;以“丰宜福台书香北宫”为主题&#xff0c;展示书画艺术魅力&#xff0c;共建文化新北宫。此次活动旨在传承和弘扬中国书法与国画的古韵文化&#xff0c;丰富北宫镇民众的精神文化生活&am…

【Linux】redhat7.8配置yum在线源【redhat7.8镜像容器内配置yum在线源】通用

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

【UE 材质】实现方形渐变、中心渐变材质

步骤 一、实现方形渐变 1. 新建一个材质&#xff0c;材质域选择“后期处理” 2. 通过“Mask”节点单独获取R、G通道&#xff0c;可以看到R通道是从左到右0~1之间的变化&#xff0c;对应U平铺 可以看到G通道是从上到下0~1之间的变化&#xff0c;对应V平铺 3. 完善如下节点 二、…

【力扣每日一题】2023.8.31 一个图中连通三元组的最小度数

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个无向图&#xff0c;要我们找出三个节点&#xff0c;这三个节点他们两两相连&#xff0c;这三个节点除了连接到对方的其他线…

阻塞非阻塞IO(BIO和NIO),IO多路复用

1.概念 NIO&#xff08;New Input/Output&#xff09;和BIO&#xff08;Blocking Input/Output&#xff09;是Java中用于处理输入输出的两种不同的模型。 BIO 会阻塞&#xff0c;等有了消息&#xff0c;立刻返回&#xff0c;一个线程处理一个recv&#xff08;需要很多线程&…

Solidity 小白教程:5. 变量数据存储和作用域 storage_memory_calldata

Solidity 小白教程&#xff1a;5. 变量数据存储和作用域 storage_memory_calldata Solidity 中的引用类型 引用类型(Reference Type)&#xff1a;包括数组&#xff08;array&#xff09;&#xff0c;结构体&#xff08;struct&#xff09;和映射&#xff08;mapping&#xff…

用迅为RK3568开发板使用OpenCV处理图像颜色通道提取ROI

本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程 \04_OpenCV 开发配套资料\07”目录下&#xff0c;如下图所示&#xff1a; 在计算机的色彩图像中存有三个通道&#xff0c;即 BGR 通道&#xff0c;根据三个颜色通道的亮度值来显示出不同的颜色&…

动态相对定位差分关键技术

载波相位测量&#xff1a;解决两个关键问题&#xff0c;即整周模糊度计算和周跳检测。 整周模糊度的快速固定是研究重点。目前成熟方法是模糊度协方差法&#xff0c;分为模糊度实数解估计和模糊度搜索两个过程。实数解估计通常采用kalman滤波&#xff0c;它为搜索算法提供搜索…

哈希表HashMap(基于vector和list)

C数据结构与算法实现&#xff08;目录&#xff09; 1 什么是HashMap&#xff1f; 我们这里要实现的HashMap接口不会超过标准库的版本&#xff08;是一个子集&#xff09;。 HashMap是一种键值对容器&#xff08;关联容器&#xff09;&#xff0c;又叫字典。 和其他容易一样…

【Vue3 知识第一讲】Vue 简介、核心关键词解读

文章目录 前置导读1. 学习 Vue3 需要什么知识&#xff1f;2. 通过本课程将能学到什么&#xff1f; 第一章&#xff1a;Vue 简介1.1 核心关键词&#xff1a;构建用户界面1.2 核心关键词&#xff1a;框架1.2.1 库和框架的区别1.2.2 Vue 框架 1.3 核心关键词&#xff1a;渐进式&am…