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使用win32com在百度空间插入html元素示例
Feb 20 Python
各个系统下的Python解释器相关安装方法
Oct 12 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
python字符串的方法与操作大全
Jan 30 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
python实现旋转和水平翻转的方法
Oct 25 Python
python使用建议与技巧分享(二)
Aug 17 Python
基于Python制作一副扑克牌过程详解
Oct 19 Python
教你利用python实现企业微信发送消息
May 23 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 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的数组与字符串的转换函数整理汇总
2013/07/18 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
yii中widget的用法
2014/12/03 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
浅谈python中set使用
2016/06/30 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
初中三年学生的学习自我评价
2013/11/13 职场文书
小学生开学感言
2014/02/28 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
通讯稿范文
2015/07/22 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
python 如何做一个识别率百分百的OCR
2021/05/29 Python
一起来学习Python的元组和列表
2022/03/13 Python