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 相关文章推荐
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
python处理大数字的方法
May 27 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
python保存网页图片到本地的方法
Jul 24 Python
Python中bisect的使用方法
Dec 31 Python
python实现贪吃蛇游戏源码
Mar 21 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
Python unittest框架操作实例解析
Apr 13 Python
python3读取autocad图形文件.py实例
Jun 05 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
python 两种方法删除空文件夹
Sep 29 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框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
JS访问对象两种方式区别解析
2020/08/29 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
Python学习笔记之装饰器
2020/08/06 Python
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
Python 内置函数速查表一览
2021/06/02 Python
logback如何自定义日志存储
2021/08/30 Java/Android
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS