IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Airtest入门 - 连接安卓设备及常用操作 -> 正文阅读

[移动开发]Airtest入门 - 连接安卓设备及常用操作

连接安卓设备(模拟器)

找到AiretestIDE右侧的设备窗(如果没有,在顶部导航栏找到: 窗口 - Devices),第一个部分就是移动设备的连接,连接安卓设备的操作如下:
1,先打开本地的模拟器,然后打开模拟器的开发者模式
2,点击远程设备连接的按钮
3,输入设备号
4,点击连接按钮
5,设备就会被列出来,点击connect就好
在这里插入图片描述
三个备选的连接参数:

  • Use javacap: 这个选项是为了防止设备出现黑屏的情况,如果你在连接模拟器之后出现黑屏的情况,可以勾选这个选项。

  • Use ADB Orientation:如果设备连接之后,屏幕方向不对,可以尝试勾选这个选项。

  • Use ADB Touch:一般不建议勾选,只有部分无法点击屏幕的设备才需要使用。

连接成功就是下图这个样子,你可以在设备窗中看到你的模拟器。

在这里插入图片描述

常用操作

安装一个APK

# 安装一个APK:
'''
install(r'apk在本地的路径',install_options=["r","t","l","s","d","g"])
可选参数的含义:
r:如果设备中已经存在该APK,则替换该APK,重新
t:允许测试的APK包
l:锁定该应用程序
s:允许把APK安装到sd卡上去
d:设备上已存在一个APK,现在要安装一个版本较低的APK,此操作为覆盖安装
g:安装APK时,为APK授予它所需要的权限
'''
install(r'F:\APP\base.apk')

打开APK

start_app启动应用程序

# 打开一个APK
# start_app("apk的包名")
'''
使用adb命令查看包名
adb shell pm list packages 列出所有的包名
adb shell pm list packages -f 列出apk的所在位置
包名格式eg:com.baidu.BaiduMap
'''
start_app("com.baidu.BaiduMap")

使用touch启动应用程序

使用touch的方法:Airtest辅助窗中点击touch,然后log查看窗会提示你框选截图,比如现在要打开百度地图,只需要把百度地图的icon截一下图,然后松开鼠标,脚本里就会出现如下图所示的内容,运行脚本的时候,airtest会使用图像匹配找到百度地图,然后点击它,这样应用程序就会打开了。
在这里插入图片描述

sleep延迟操作

我们在启动百度地图的时候会发现,启动页有大概2-3s的时间,这个时候我们不需要点击什么,所以给它设置一个等待时间,sleep的使用场景大致就是这个样子,等待几秒执行下一个操作,比如上传一个图片,也需要设置等待时间,否则图片不能完全上传会影响后面的操作。使用方法也很简单:

sleep(3)
# 3s之后执行后续操作

text文本输入

假如我们现在需要搜索“人民广场”,我们要执行的操作就是点击搜索输入框,弹出文本输入框,输入“人民广场”,然后回车,

touch(Template(r"tpl1640591369408.png", record_pos=(-0.095, -0.781), resolution=(810, 1440)))
touch(Template(r"tpl1640591324321.png", record_pos=(-0.094, -0.773), resolution=(810, 1440)))
text("人民广场")
keyevent("{ENTER}")

注:代码复制过来,图片会被以代码的形式粘贴在这里,下图为脚本中的实际样子
在这里插入图片描述

keyevent键盘输入

keyevent("^a") # 全选
keyevent("^c") # 复制
keyevent("{BACKSPACE}") # 退格
keyevent("{DEL}") # 删除
keyevent("{ENTER}") # 键入
keyevent("^v") # 粘贴
keyevent("{HOME}") # home键

更多Android按键码参考: https://developer.android.com/reference/android/view/KeyEvent

滑动操作

swipe单指滑动

从海伦路下滑 滑动到蓝村路
从陆家浜路上滑 滑动到江浦公园
在这里插入图片描述

# 滑动操作
# 上滑
swipe(Template(r"tpl1640593232273.png", record_pos=(-0.331, 0.374), resolution=(810, 1440)), vector=[0.6013, -0.5162])
# 下滑
swipe(Template(r"tpl1640593356860.png", record_pos=(-0.327, -0.39), resolution=(810, 1440)), vector=[0.6338, 0.4979])
swipe((100,900),(300,300)) # 从坐标(100,900)滑动到(300,300)
swipe((100,900),(300,300), duration=1, steps=2) # 从坐标(100,900)滑动到(300,300),持续1s,分两步完成

pinch双指捏合滑动

# 双指捏合操作
pinch() # 两指向屏幕中间点捏合
pinch('in',center = (600,600)) # 以中心点坐标(600,600)向内捏合
sleep(3)
pinch('out',center = (600,600))# 以中心点坐标(600,600)向外捏合
pinch('out',center = (600,600),percent = 0.2) # 以中心点坐标(600,600)向外捏合,其中捏合比例为屏幕的20%

断言

如果断言失败,会报出断言失败AssertionError的错误。

# 断言
assert_exists(Template(r"tpl1640597475387.png", record_pos=(0.088, 0.183), resolution=(810, 1440)), "找到了目标图片")
assert_not_exists(Template(r"tpl1640597559651.png", record_pos=(0.089, 0.177), resolution=(810, 1440)), "没有找到目标图片")
assert_equal(1, 1, "msg:实际值:1和预测值:1一致")
assert_not_equal("1", "2", "实际值:1和预测值:2不一致.")

wait等待

参数详解:
Template:目标元素
timeout:等待x秒之后,如果图片依旧没有出现,抛出异常
interval:每间隔x秒就查找一次图片
intervalfunc:每次找不到这个图片就会执行该函数

# 等待
def NotFound():
    print("元素没有找到")
wait(Template(r"tpl1640596080020.png", record_pos=(0.127, -0.062), resolution=(810, 1440)),timeout = 10,interval = 3,intervalfunc = NotFound)

鼠标的单击,双击,左击,右击

# 点击操作
touch(600.600) # 点击指定坐标
touch(Template(r"tpl1640597122385.png", record_pos=(0.093, 0.177), resolution=(810, 1440))) # 点击指定图片
touch((600,300),duration = 2) # 点击持续2秒
touch((600,300),time = 2)  # 点击两次
touch(Template(r"tpl1640596975627.png", record_pos=(0.091, 0.146), resolution=(810, 1440)),target_pos = 5) # 点击目标图片的中心点
touch((600,300),right_click = true) # 右击
double_click(600,600) # 双击
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 23:02:56  更:2021-12-28 23:04:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:04:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码