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实现的简单发送邮件脚本分享
Nov 07 Python
Python编程之属性和方法实例详解
May 19 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
tensorflow求导和梯度计算实例
Jan 23 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
python实现图片转字符画的完整代码
Feb 21 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 Python
python 实现德洛内三角剖分的操作
Apr 22 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
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
javascript计时器详解
2015/02/28 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
Python设计模式之MVC模式简单示例
2018/01/10 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
python爬虫之遍历单个域名
2019/11/20 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
台湾森森购物网:U-mall
2017/10/16 全球购物
高中毕业自我鉴定
2013/12/13 职场文书
通信工程专业毕业生推荐信
2013/12/25 职场文书
创业计划书怎样才能打动风投
2014/01/01 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
老龙头导游词
2015/02/11 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript