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 Django模板的使用方法(图文)
Nov 04 Python
Python中的filter()函数的用法
Apr 27 Python
python机器学习库常用汇总
Nov 15 Python
Python编写Windows Service服务程序
Jan 04 Python
Python类装饰器实现方法详解
Dec 21 Python
python日期相关操作实例小结
Jun 24 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
django foreignkey(外键)的实现
Jul 29 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
Django-migrate报错问题解决方案
Apr 21 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
使用python爬取抖音app视频的实例代码
Dec 01 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下mysql数据库操作类(改自discuz)
2010/07/03 PHP
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
50个比较实用jQuery代码段
2011/09/18 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python下的subprocess模块的入门指引
2015/04/16 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
使用Python来开发微信功能
2018/06/13 Python
python爬虫实例详解
2018/06/19 Python
Python检查ping终端的方法
2019/01/26 Python
python使用selenium实现批量文件下载
2019/03/11 Python
django中间键重定向实例方法
2019/11/10 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
初一体育教学反思
2014/01/29 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
Hive日期格式转换方法总结
2022/06/25 数据库