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 相关文章推荐
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
Python 判断 有向图 是否有环的实例讲解
Feb 01 Python
详解python字节码
Feb 07 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python3 sleep 延时秒 毫秒实例
May 04 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 Python
Python中异常处理用法
Nov 27 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
咖啡语言
2021/03/03 咖啡文化
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
angular.bind使用心得
2015/10/26 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
Element Input输入框的使用方法
2020/07/26 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
python判断自身是否正在运行的方法
2019/08/08 Python
python爬虫之遍历单个域名
2019/11/20 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
运动会领导邀请函
2014/01/10 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
2014春晚主持词
2014/03/25 职场文书
作文批改评语大全
2014/04/23 职场文书
服务标语大全
2014/06/18 职场文书
外贸英文求职信范文
2015/03/19 职场文书
Python面向对象之成员相关知识总结
2021/06/24 Python
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android