如何用 Python 实现安卓机自动化?

python做手机端app自动化测试 用python做app的自动化测试,目前有两种方式可以完成:1.由于Appnium不是一个库,是一套软件,安装需要java环境等,还有配置,非常麻烦,所以这里不考虑2.uiautomator2比Appnium简单易上手,但是目前相关代码较少,本文将尝试用该库解决手机app的自动化问题。(uiautomator2只能操作安卓系统,ios系统不兼容,如果是苹果手机就没必要往后看了) 阅读详情
AI摘要

本文介绍了如何使用Scrcpy进行安卓手机无线投屏,以及如何通过uiautomator2配合Python实现对手机应用的自动化操作,如控制Bilibili应用的点赞、投币和关注。

今天给大家介绍一套安卓机自动化解决方案

# 投屏软件:Scrcpy

Scrcpy,全称 screen copy,是一款开源的手机无线投屏软件。

图片

而且还是跨平台的,无论是在 Linux、Windows 还是 macOS 上都能使用。

项目地址:

https://github.com/Genymobile/scrcpy

这里以 Windows 为例,安装起来非常简单:

图片

直接下载安装包并解压就行,里面还带了adb调试工具。

然后添加一下系统的环境变量。

图片

用 USB 线连接手机和电脑,将手机调整为开发者模式。

图片

这样,在电脑上运行 Scrcpy 指令:

scrcpy

就能将手机画面投放到电脑上了。

我们可以通过这个投放的画面,在电脑上,操纵这台手机。

但是,如果想要让代码自动化控制,那就还需要另外一款工具。

# 自动化工具:uiautomator2

UiAutomator 是 Google 提供的用来做安卓自动化测试的一个 Java 库,基于 Accessibility 服务。功能很强,可以对第三方 App 进行测试,获取屏幕上任意一个 APP 的任意一个控件属性,并对其进行任意操作,但有两个限制:

  • 测试脚本只能使用 Java 语言
  • 测试脚本要打包成 jar 或者 apk 包上传到设备上才能运行

于是有了 UiAutomator2,逻辑可以用 Python 编写,能够在电脑上控制手机。

项目地址:

https://github.com/openatx/uiautomator2

安装方法也非常简单,直接 pip 安装即可,不过为了方便环境的管理,还是先创建一个 Conda 虚拟环境。

conda create -n android

然后激活这个虚拟环境:

conda activate android

安装 uiautomator2 和 weditor。

python -m pip install uiautomator2 weditor

然后用手机打开想要操控的 App,比如 BiliBili,打开软件后,使用 Weditor 审查元素。

python -m weditor

这样就开启了一个 Web 界面,在这个界面里,能够审查元素,定位一些想要点击的点。

加粗样式

比如我想要给一个视频三连,那就审查三连的元素,然后将操作用代码流程化。

import uiautomator2 as u2
import time
from PIL import Image
import cv2
import numpy as np

all_videos = []

def get_images(device):
    views = device.xpath('//*[@resource-id="tv.danmaku.bili:id/recycler_view"]/android.view.ViewGroup/android.widget.FrameLayout[1]')
    for idx, view_box in enumerate(views.all()[:5]):
        print("视频{} 封面的中心坐标:".format(idx+1), view_box.center())
        image = view_box.screenshot()
        image.save("{}.jpg".format(idx+1))
        all_videos.append(view_box)

def refresh(device):
    device.swipe_ext("down")

def like_the_video(device):
    like_icon = device.xpath('//*[@resource-id="tv.danmaku.bili:id/recommend_icon"]')
    like_icon.click()
    print("视频点赞成功")

def pay_for_the_video(device):
    coin_icon = device.xpath('//*[@resource-id="tv.danmaku.bili:id/coin_icon"]')
    coin_icon.click()
    time.sleep(0.1)
    pay_icon = device.xpath('//*[@resource-id="tv.danmaku.bili:id/pay_coins"]')
    pay_icon.click()
    print("视频投币成功")

def follow_the_up(device):
    follow_icon = device.xpath('//*[@resource-id="tv.danmaku.bili:id/follow"]')
    follow_icon.click()
    print("关注成功")

def back(device):
    back_icon = device.xpath('//*[@content-desc="转到上一层级"]')
    back_icon.click()
    print("已退出视频")

if __name__ == "__main__":
    _DEVICE_ID = 'da317199'
    d = u2.connect(_DEVICE_ID) # connect to device
    get_images(d)
    all_videos[3].click()
    print("点进去了!")
    time.sleep(0.1)
    like_the_video(d)

    time.sleep(0.1)
    pay_for_the_video(d)

    time.sleep(0.1)
    follow_the_up(d)

效果是这样的:

在这里插入图片描述

代码里有个 device_id 可以通过 adb 工具查询,手机连接电脑后,再用如下指令查询:

adb devices

根据这个设备号,就能操纵这台手机。

# 写在最后

这东西,还能用来做什么?

你知道,为啥抢茅台你总抢不到吗?抢个演唱会门票抢不到?挂号挂不到?

票贩子为啥总能抢到票?

很多平台限制必须手机上抢,这个时候,这项技术就能排上用场了。

我只能帮你到这了,剩下的,可以自己慢慢体验。

所以,家里的旧手机不要扔!写个脚本,能帮你干很多事~

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

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

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

app自动化:python + appium 阅读详情

相关推荐

Python+scrcpy+pyminitouch实现自动化(二)——pyminitouch的安装

一、什么是pyminitouch? minitouch是openstf基于ndk + Android开发的用于模拟人类点击行为的操作库。这个库以高稳定性、反应快著称,比起adb操作与uiautomator(两分钟搞懂UiAutomator自动化测试框架 - 知乎)都要更灵敏,被广泛应用于Android设备的精细操作。 然而它的使用与其安装方式都较为繁琐,无法定位打元素,使得它在自动化的应用领域上远远比不上uiautomator。它的体验感也较为一般,么此都要给手机重复安装指定版本的minitouch、建

Alkaid2000的博客 5498

python实现Android实时投屏操控

本文向大家介绍如何使用python来实现Android设备的实时投屏控制。python中有一个scrcpy-client库,跟scrcpy的原理差不多。通过指令pip3 install scrcpy-client安装,安装好后我们可以直接使用自带的投屏控制界面,也可以自己制作符合需求的投屏控制界面。

爆笑蛙的博客 1万+

自动化测试(二):安卓机初探与Python实现andriod截图实例

自动化测试入门

a_beatiful_knife的博客 895

基于python + Appium的安卓自动化

基于python + Appium的安卓自动化 最近要双11了,刷喵糖比较火,看到github上一个刷喵糖的项目testerzhang/taobaomiao.git,也成功跑起来了,顺便研究下了实现方法 关于Appium Appium是一款开源的的自动化测试框架,支持通过WebDriver协议操作ios或者安卓上的Web App、Native App 和 Hybrid App。结合python脚本可以完成移动应用的自动化测试和操作。因为具有比较高的灵活性,除了自动化测试外,它也常被用来刷各互联网厂的活动

cynthrial的博客 4097

python基于atx实现安卓手机自动化

atx实现自动化需要借助adb,需要注意的是,atx仅做安卓自动化,ios需借助wda。例子简介:上述代码给手机连接,接着打开王者**,没有此软件需提前安装,或更换其他包名。这里需要有两个安装,一个是atx,另一个是uiautomator2。

weixin_57037336的博客 2365

使用Python实现安卓应用页面自动化测试

安卓应用自动化测试是保证应用质量的重要手段,Python提供了多种工具来实现这一目标。下面我将介绍几种主流的Python安卓自动化测试方案。

前端金牌摸鱼达人 2万+

用Python实现自动化操作Android手机

本文原创作者: 鲲之鹏 (http://www.site-digger.com) 本文原始链接:http://www.site-digger.com/html/articles/20180912/664.h...

clf63082的博客 2万+

python 编程 安卓脚本_详解基于Android的Appium+Python自动化脚本编写

1.AppiumAppium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序。通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码。下面开始Appium的配置。appPackage和APPActivity的获取任意下载一个app解压...

weixin_39523625的博客 2931

python利用appium实现手机APP自动化

写这个东西也是自己喜欢研究些自动化的东西,以下全是自己的经验所得,由于开源的软件对于各版本以及操作系统要求很高,会经常碰到一些不兼容的问题,这个都属于正常的,换版本就对了。 如果你感觉学不会?莫慌,小编推荐大家加入群, 前面548中间377后面875,群里有志同道合的小伙伴, 互帮互助,还可以拿到许多视频教程! 本人的环境搭建都是在win10 64位上搭建的 1、环境准备 1.jdk1...

qq_38839677的博客 1万+

Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告

2020年4月补充 鉴于配置自动化测试这套框架确实稍微有点麻烦,许多小伙伴在配置的过程中总是踩坑,最近写了篇简化版的入门教程,不想折腾Android SDK的小伙伴可以移步到那篇文章: https://www.jb51.net/article/169763.htm 概述 本文主要分为以下几个部分 安装Python3 安装Python3的Appium库 安装Android SDK 安装JDK 安装Appium 安装模拟器 编写测试脚本并生成测试报告 项目示例下载地址: https://github.

wx1871428的博客 1507

Python自动化测试:安卓设备高效测试指南

在现代移动应用开发和测试领域,自动化测试已经成为提升产品质量和加速迭代周期的关键技术之一。其中,uiautomator2框架因其简单易用、功能强大成为了众多自动化测试工程师的首选。本章节将深入探讨uiautomator2框架的方方面面,从基本概念到具体应用,让读者能够全面掌握这一强大的自动化测试工具。uiautomator2,简称u2,是一个由国人开发者自主研发的Android自动化测试框架,它是在Google官方的uiautomator框架基础上进一步发展而来。

weixin_36296444的博客 1172

APPnium+PYthon对安卓APP进行自动化测试

测试环境搭建 需要用到的软件如下: jdk-8u121-window(32位的就下载32位的,64位的就下载64位的)。 2.Android-sdk_r24.3.4-windows(下载这个adt-bundle-windows-x86-20140624) 3.Python:(V3.6也可以) 4.appium:1.4.13.1 5.Node.js:node-v4.4.7-x64 6.Appiu...

Clown01的博客 2万+

别再乱短接了!OEC/OEC-turbo刷机救砖,用RKDevTool避开‘下载boot失败’的保姆级教程

本文提供OEC/OEC-turbo刷机救砖的终极指南,重点介绍使用RKDevTool避开‘下载boot失败’的详细步骤。从Loader模式的优势到硬件准备细节,再到分阶段刷机方案,帮助用户高效完成设备恢复,避免反复短接和常见误区。

weixin_29280657的博客 1112

python-appium安卓APP自动化环境搭建和appium常用函数说明应用

python-appium安卓APP自动化环境搭建安装步骤总览:第一步:下载安装包第二步:安装node.js第三步:安装java-sdk第四步:配置Java环境变量一共配置三处环境变量系统变量中,新建(1)系统变量中,新建(2)用户变量中的path变量中新增三条新建(1)第五步:SDK Tools和部分工具内容第六步:配置ANDROID_HOME环境变量第七步:安装Appium和链接手机第八步:链接手机进行调试第九步:python代码连接操作样例代码和appium基本操作api 安装步骤总览: 第一步:下载

qq_42778518的博客 1950

AI Agent在保险行业落地:从智能客服到核保理赔的实践路径

AI Agent作为大模型技术的核心应用形态,正从通用对话走向垂直行业深度落地。其本质是让机器理解自然语言、处理非结构化文档,并在复杂业务流程中辅助人类完成信息抽取、内容生成与多轮交互。在保险这一强监管、高客单价的行业中,智能客服与销售助手率先验证了降本增效的价值,核保与理赔环节则进一步展示了AI在文档理解与风控辅助上的高价值潜力。从技术原理到商业闭环,垂直场景正在成为AI应用的主战场。本文以保险行业为样本,剖析AI Agent如何嵌入真实业务流程,梳理可复用的三阶段落地路径,为企业在医疗、金融等类似高文本

weixin_29039773的博客 366

【车辆动力学】专栏目录汇总

车辆动力学知识目录汇总

CrazyRabbit的博客 1715

python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化

简单实例注:安卓6.0以上的手机不会自动安装app-uiautomator.apk和app-uiautomator-test.apk,需要手动安装,否则报错ioerror RPC server not starteduiautomator +python+HTMLTestRunner 安卓UI自动化实现#coding:utf-8from uiautomator importDeviceimport...

weixin_39674414的博客 712

告别龟速计算!用Python的fengwo模块5分钟搞定通达信COST/WINNER函数(附完整代码)

本文介绍如何使用Python的fengwo模块高效复现通达信的COST和WINNER函数,解决量化交易中的计算精度和性能问题。通过C++核心算法和多线程优化,计算速度提升显著,误差低于0.5%,并支持与通达信DLL无缝集成,适用于实盘交易策略开发。

weixin_42533751的博客 600

告别Appium!用Python+uiautomator2实现安卓自动化测试(附避坑指南)

本文介绍了如何利用Python和uiautomator2库实现轻量级的安卓自动化测试,以替代复杂的Appium框架。通过对比两者架构差异,详细讲解了从环境搭建、设备连接到核心API使用的完整流程,并提供了实战案例与常见问题的避坑指南,帮助开发者快速上手并提升测试效率。

green的博客 1065

恒玄BES调试笔记-BES2500如何打开COMPEXP

打开Compressor and expander会占用资源,这个根据个人项目需求而定吧!打开方法,以及参数修改如下: config\best2300a_ibrt_anc\target.mk SPEECH_RX_COMPEXP ?= 1 apps\audioplayers\bt_sco_chain_cfg_default.c #if defined(SPEECH_RX_COMPEXP) /*****************************************************

leezs的博客 706

室内温度控制仿真(Simulink+PLC)

本篇博客将会带领大家解读Simulink自带的仿真模型(Thermal Model of a House),之后再讨论PLC控制系统控制环境温度的一些经验方法

RXXW_Dor的博客 3464

python android自动化_uiautomator +python 安卓UI自动化尝试

简单实例注:安卓6.0以上的手机不会自动安装app-uiautomator.apk和app-uiautomator-test.apk,需要手动安装,否则报错ioerror RPC server not starteduiautomator +python+HTMLTestRunner 安卓UI自动化实现#coding:utf-8from uiautomator importDeviceimport...

weixin_39611769的博客 467

论文必备 - 绘制YOLOv8模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线

文件是模型在训练过程中,实时记录训练的结果,和当时控制台输出的信息一致。当然还包含一些验证损失,学习率变化等数据。epoch:记录训练的轮次,总轮次为训练文件中设置的epochs大小。:边界框损失。在训练过程中,此值逐渐变小,越小表示模型预测的边界框与真实边界框之间的差异越小。:分类损失。在训练过程中,此值逐渐变小,越小表示模型对目标类别的预测越准确。:分布焦点损失。将边界框的回归问题转化为对边界框四个边的分布预测问题,越小表示预测越准确。:精确率也称为查准率。

Limiiiing的博客 1407

python 控制 安卓_Python实现自动化操作Android手机

参考; https://www.cnblogs.com/xakzp/articles/9662770.html注:1,一定要要使用Python 2.7才能通过AndroidViewClient控制手机,因为AndroidViewClient不兼容Python3;2,uiautomatorviewer.bat 打开时,如果报错:Unexpected error while obtaining UI...

weixin_39543478的博客 2479

基于Matlab的磁力计校准(附源码)

磁力计沿传感器的 X、Y 和 Z 轴检测磁场强度。精确的磁场测量对于传感器融合以及确定航向和方向至关重要。为了用于航向和方向计算,需要校准典型的低成本MEMS磁力计,以补偿环境噪声和制造缺陷。一、理想磁力计理想的三轴磁力计沿正交 X、Y 和 Z 轴测量磁场强度。在没有任何磁干扰的情况下,磁力计读数测量地球磁场。如果在传感器通过所有可能的方向旋转时进行磁力计测量,则测量值应位于球体上。球体的半径是磁场强度。要生成磁场样本,请使用对象。出于这些目的,可以安全地假设每个方向的角速度和加速度为零。

珞瑜的博客 4520

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 如何用 Python 自动化监控文件夹完成服务部署!
下一篇: Python 命令行参数化的几种方式
普通网友
博客等级 码龄3年 4493粉丝 309原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值