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写的Discuz7.2版faq.php注入漏洞工具
Aug 06 Python
Python实现partial改变方法默认参数
Aug 18 Python
Python常用随机数与随机字符串方法实例
Apr 09 Python
python实现一次创建多级目录的方法
May 15 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
Python中的枚举类型示例介绍
Jan 09 Python
对python:循环定义多个变量的实例详解
Jan 20 Python
Python基于execjs运行js过程解析
Nov 27 Python
Python排序函数的使用方法详解
Dec 11 Python
Python采集爬取京东商品信息和评论并存入MySQL
Apr 12 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
PHP简单遍历对象示例
2016/09/28 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
Python 正则表达式实现计算器功能
2017/04/29 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
谈谈python垃圾回收机制
2020/09/27 Python
优秀团员事迹材料2000字
2014/08/20 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
销售督导岗位职责
2015/04/10 职场文书
会议通知范文
2015/04/15 职场文书
横空出世观后感
2015/06/09 职场文书
无故旷工检讨书
2015/08/15 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
ORACLE查看当前账号的相关信息
2021/06/18 Oracle