在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相关推荐

  1. python刷快手_抖音+快手 自动化刷视频脚本(python+adb)

    最近在家闲着也是闲着,写了一下python自动化脚本,进行刷视频的操作.(下雨天打孩子,闲着也是闲着) 1.环境 python+adb工具 2.安装手机一部 数据线一部 3.进入调试模式或者开发者模式 ...

  2. python群控_带你用 Python 实现自动化群控入门篇

    点击上方"AirPython",选择"加为星标"第一时间关注 Python 技术干货! 1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完 ...

  3. python 群控源代码_自动化 带你用 Python 实现自动化群控设备 _好机友

    1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 Hui 产绑定在一起! 事实上,群控在自动化测试中也被广泛使用!接下来的几篇文章,我将带大家 ...

  4. Appium+Python安卓自动化测试之启动APP和配置获取

    Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...

  5. 移动设备input输入框点击后自动选中内容_带你用 Python 实现自动化群控(入门篇)...

    1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 Hui 产绑定在一起! 事实上,群控在自动化测试中也被广泛使用!接下来的几篇文章,我将带大家 ...

  6. python安卓自动化实现方法_带你用 Python 实现自动化群控(入门篇)

    原标题:带你用 Python 实现自动化群控(入门篇) 来自公众号: AirPython 1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 H ...

  7. 分享|涨薪必备的Python接口自动化测试资源技能一键get

    终于回归正常工作节奏 重新拾起去年的摊子 Q1已经过去三分之二 应该有不少人 去去去去年春节立下的Flag 至今还没实现 而今年2020年-- 好像或许可能也实现不了 偶尔会看到有测试盆友抱怨 领导明 ...

  8. 如何用python控制设备实现自动_带你用 Python 实现自动化群控设备

    1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和灰产绑定在一起! 事实上,群控在自动化测试中也被广泛使用!接下来的几篇文章,我将带大家聊聊企业 ...

  9. python简易自动化之pyautogui 2020-12-19

    python简易自动化之pyautogui 2020-12-19 学习自动化,参考网上介绍,测试了一下,效果很好.记录如下. pip install pyautogui 安装pyautogui模块,这 ...

最新文章

  1. 第一家科创板IPO的AI公司:年净利1.58亿,华为小米背后功臣,北大物理系校友创办...
  2. 机器翻译引擎的基本原理 ——LSTM
  3. mount挂载windows共享文件夹
  4. 文本挖掘预处理流程总结(1)— 中文
  5. App用户体验的一点思考
  6. 风机桨叶故障诊断(三) 识别桨叶——初步构建BP神经网络
  7. cocos creator 方法数组_Creator | 优化三剑客之内存!
  8. 基于PaddleOCR史上最全车牌号识别实现(二)
  9. RHEL 7 修改网卡的ip地址
  10. 拖放drag、drog
  11. 刚刚,百度宣布造车!
  12. 甘超波:NLP理解层次
  13. Element 表单校验方法简单抽离
  14. shanzhi -接小球游戏4.0
  15. 如何查看网页源码code、申请头headers等
  16. 俄语转化成拉丁字母java_java - 如何在Java String中将西里尔字母转换为英语拉丁语? - SO中文参考 - www.soinside.com...
  17. java json导入excel_java 导入json生成excel
  18. “我在公司待了 6 年,清退我却只花了 6 分钟”
  19. LA-PEG2000-MAL,硫辛酸和马来酰亚胺修饰的线性杂双功能PEGLipoic acid-PEG2k-Maleimide
  20. 教你如何解决网络所面临的安全问题?

热门文章

  1. intrigue more
  2. UNITY2018.3 在editor下运行时new memoryprofiler显示 shader占用内存很大的问题在安卓上并没有看到...
  3. 金蝶CLOUD星空云tempdb过大处理方法
  4. 如何在Amazon AWS上设置一台Linux服务器
  5. .NET分层登陆——机房收费系统再总结
  6. saltstack (6) 配置管理(2)
  7. Linux内核实现中断和中断处理(二)
  8. EDM邮件群发十大技巧提升邮件群发效果
  9. Centos6.5_x86_64 编译安装Subversion-1.8.5
  10. Spring Data JPA 教程(翻译)