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中操作列表之List.append()方法的使用
May 20 Python
python简单线程和协程学习心得(分享)
Jun 14 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
PyQt5固定窗口大小的方法
Jun 18 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python实现用户名密码校验
Mar 18 Python
python topk()函数求最大和最小值实例
Apr 02 Python
django中related_name的用法说明
May 20 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
如何用python绘制雷达图
Apr 24 Python
python ansible自动化运维工具执行流程
Jun 24 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
Look And Say 序列php实现代码
2011/05/22 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
php 强制下载文件实现代码
2013/10/28 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
python difflib模块示例讲解
2017/09/13 Python
Python/ArcPy遍历指定目录中的MDB文件方法
2018/10/27 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
Champion官网:美国冠军运动服装
2017/01/25 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
养成教育经验材料
2014/05/26 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
三八妇女节寄语
2015/02/27 职场文书
法制工作总结2015
2015/07/23 职场文书
财务管理制度范本
2015/08/04 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
python的变量和简单数字类型详解
2021/09/15 Python