Python之使用adb shell命令启动应用的方法详解


Posted in Python onJanuary 07, 2019

一直有一个心愿希望可以用Python做安卓自动化功能测试,在一步步摸索中,之前是用monkeyrunner,但是发现对于控件ID的使用非常具有局限性,尤其是ID的内容不便于区分

具有重复性时,后面又发现Uiautomator可以对resorceId、text、packageName等元素进行定位,也找到了xiaochong这位大神关于uiautomator的封装包,链接如下:

https://github.com/xiaocong/uiautomator

做为一个小白,这一切都需要摸索,在克服了安装uiautormator封装包的问题后,又卡在启动应用这个问题上,之前使用monkeyrunner时启动应用使用的是如下代码:

from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage

package = 'com.android.settings'

activity = '/.Settings'

runcomponent = package + activity

device.startActivity(component = runcomponent)

也是我无知,尝试了很久,终于找到了adb shell am start 包名/Activity启动,以设置应用为例,代码如下

import os

os.system(“adb shell am start -n com.android.settings/.Settings”)

运行结果如下:

Starting: Intent { cmp=com.android.settings/.Settings }
0

成功进入设置应用界面,接下来可以尝试其它你想做的操作了

当然这只是解决了我在PC上运行的问题,在查找问题时有留意到uiautomator最终是要编译成jar文件是要放到android里面的虚拟环境去执行命令,但是android内部并没有adb

环境,所以adb命令会失败,必须得找到能够在android也可以运行的方法

以此做个备忘,希望自己可以在这条路上走得越来越远。

以上这篇Python之使用adb shell命令启动应用的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过文件头判断文件类型
Oct 30 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
解决pip install的时候报错timed out的问题
Jun 12 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
Python for i in range ()用法详解
Sep 18 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
在keras里实现自定义上采样层
Jun 28 Python
解决Python安装cryptography报错问题
Sep 03 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
只需要这一行代码就能让python计算速度提高十倍
May 24 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 Python
python 对多个csv文件分别进行处理的方法
Jan 07 #Python
python 同时运行多个程序的实例
Jan 07 #Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 #Python
在python中使用with打开多个文件的方法
Jan 07 #Python
python读取文件名并改名字的实例
Jan 07 #Python
Python 调用 zabbix api的方法示例
Jan 06 #Python
使用Django2快速开发Web项目的详细步骤
Jan 06 #Python
You might like
php IP及IP段进行访问限制的代码
2008/12/17 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
详解python中eval函数的作用
2019/10/22 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
Python restful框架接口开发实现
2020/04/13 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
在keras里实现自定义上采样层
2020/06/28 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
职高毕业生自我鉴定
2013/10/21 职场文书
租房协议书范本
2014/04/09 职场文书
中学教师师德承诺书
2014/05/23 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
优秀教师申报材料
2014/12/16 职场文书
体育教师个人总结
2015/02/09 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
Python函数对象与闭包函数
2022/04/13 Python