Python: adb自动化ce'shi
在python中使用adb命令,可以导入os模块,手机开启开发者模式,然后连接上电脑。
注意使用的python版本是2.7.
1 简单的adb命令。
如:os.system(‘adb version’)
2 稍微复杂的adb命令。
如:os.system(‘adb shell “dumpsys activity | grep “mFocusedActivity”“’)
3 希望将adb读出的内容保存。
如:out = os.popen(‘adb shell “dumpsys activity | grep “mFocusedActivity”“’).read()
总结一下:os.system不支持读取, os.popen支持读取。
下面有一个转来的脚本,学习一下:
import osimport reos.system('adb version')os.system('adb devices') #os.system是不支持读取操作的out = os.popen('adb shell "dumpsys activity | grep "mFocusedActivity""').read() #os.popen支持读取操作print(out)#下面的代码是获取当前窗口的component参数def getFocusedPackageAndActivity():pattern = re.compile(r"[a-zA-Z0-9\.]+/[a-zA-Z0-9\.]+") #这里使用了正则表达式,对输出的内容做了限制,只会显示类似"com.mediatek.factorymode/com.mediatek.factorymode.FactoryMode"的字符串out = os.popen("adb shell dumpsys window windows | findstr \/ | findstr name=").read() #window下使用findstrlist = pattern.findall(out)component = list[0] #输出列表中的第一条字符串return componentprint(getFocusedPackageAndActivity())
python交互
使用subprocess
使设备具有部分Linux命令
python脚本:下载busybox,并且放在与脚本相同的目录下
# coding:utf-8
# 这个脚本用于使环境拥有busybox的环境
import subprocessimport os
print "开始push文件"
os.system(" adb push busybox /system/xbin/")
print "开始root"
os.system("adb root")
print "开始remote"
os.system("adb remount")#这里面的命令全部都会在Linux的环境下执行,最后需要退出。
cmds = ["chmod 755 /system/xbin/busybox","cd /system/xbin/","busybox --install .","awk","ps |grep com.txznet.music|awk '{print $2}' | head -n 1","exit",#这是是非常关键的,退出
]
print "开始安装"
pipe = subprocess.Popen("adb shell", stdin=subprocess.PIPE, stdout=subprocess.PIPE)
code = pipe.communicate("\n".join(cmds) + "\n");
print code
print "安装结束"杀掉相应的进程# coding:utf-8
# 这个脚本是用来杀掉music的进程的
import os
import string
import subprocess
def kill(result):print result.strip()code = os.system(" adb shell kill " + result.strip())print codeprocessname = os.system('''adb shell ps|grep com.txznet.music|awk '{print$2","}''''')# print processname
# result="["+str(processname)+"]"
# print result
# for processID in result:
# print processID.strip()
# code=os.system(" adb shell kill "+processID.strip())
# print codepipe = subprocess.Popen("adb shell ps|grep com.txznet.music|awk '{print$2}'", stdin=subprocess.PIPE,stdout=subprocess.PIPE)# result=pipe.communicate("ps|grep com.txznet.music|awk '{print$2","}'")
# print result
result = pipe.stdout.readline()
result1 = pipe.stdout.readline()
result2 = pipe.stdout.readline()
print result
kill(result)
print result1
kill(result1)
print result2
kill(result2)
Python: adb自动化ce'shi相关推荐
- python刷快手_抖音+快手 自动化刷视频脚本(python+adb)
最近在家闲着也是闲着,写了一下python自动化脚本,进行刷视频的操作.(下雨天打孩子,闲着也是闲着) 1.环境 python+adb工具 2.安装手机一部 数据线一部 3.进入调试模式或者开发者模式 ...
- python群控_带你用 Python 实现自动化群控入门篇
点击上方"AirPython",选择"加为星标"第一时间关注 Python 技术干货! 1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完 ...
- python 群控源代码_自动化 带你用 Python 实现自动化群控设备 _好机友
1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 Hui 产绑定在一起! 事实上,群控在自动化测试中也被广泛使用!接下来的几篇文章,我将带大家 ...
- Appium+Python安卓自动化测试之启动APP和配置获取
Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...
- 移动设备input输入框点击后自动选中内容_带你用 Python 实现自动化群控(入门篇)...
1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 Hui 产绑定在一起! 事实上,群控在自动化测试中也被广泛使用!接下来的几篇文章,我将带大家 ...
- python安卓自动化实现方法_带你用 Python 实现自动化群控(入门篇)
原标题:带你用 Python 实现自动化群控(入门篇) 来自公众号: AirPython 1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 H ...
- 分享|涨薪必备的Python接口自动化测试资源技能一键get
终于回归正常工作节奏 重新拾起去年的摊子 Q1已经过去三分之二 应该有不少人 去去去去年春节立下的Flag 至今还没实现 而今年2020年-- 好像或许可能也实现不了 偶尔会看到有测试盆友抱怨 领导明 ...
- 如何用python控制设备实现自动_带你用 Python 实现自动化群控设备
1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和灰产绑定在一起! 事实上,群控在自动化测试中也被广泛使用!接下来的几篇文章,我将带大家聊聊企业 ...
- python简易自动化之pyautogui 2020-12-19
python简易自动化之pyautogui 2020-12-19 学习自动化,参考网上介绍,测试了一下,效果很好.记录如下. pip install pyautogui 安装pyautogui模块,这 ...
最新文章
- 第一家科创板IPO的AI公司:年净利1.58亿,华为小米背后功臣,北大物理系校友创办...
- 机器翻译引擎的基本原理 ——LSTM
- mount挂载windows共享文件夹
- 文本挖掘预处理流程总结(1)— 中文
- App用户体验的一点思考
- 风机桨叶故障诊断(三) 识别桨叶——初步构建BP神经网络
- cocos creator 方法数组_Creator | 优化三剑客之内存!
- 基于PaddleOCR史上最全车牌号识别实现(二)
- RHEL 7 修改网卡的ip地址
- 拖放drag、drog
- 刚刚,百度宣布造车!
- 甘超波:NLP理解层次
- Element 表单校验方法简单抽离
- shanzhi -接小球游戏4.0
- 如何查看网页源码code、申请头headers等
- 俄语转化成拉丁字母java_java - 如何在Java String中将西里尔字母转换为英语拉丁语? - SO中文参考 - www.soinside.com...
- java json导入excel_java 导入json生成excel
- “我在公司待了 6 年,清退我却只花了 6 分钟”
- LA-PEG2000-MAL,硫辛酸和马来酰亚胺修饰的线性杂双功能PEGLipoic acid-PEG2k-Maleimide
- 教你如何解决网络所面临的安全问题?
热门文章
- intrigue more
- UNITY2018.3 在editor下运行时new memoryprofiler显示 shader占用内存很大的问题在安卓上并没有看到...
- 金蝶CLOUD星空云tempdb过大处理方法
- 如何在Amazon AWS上设置一台Linux服务器
- .NET分层登陆——机房收费系统再总结
- saltstack (6) 配置管理(2)
- Linux内核实现中断和中断处理(二)
- EDM邮件群发十大技巧提升邮件群发效果
- Centos6.5_x86_64 编译安装Subversion-1.8.5
- Spring Data JPA 教程(翻译)