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 XML RPC服务器端和客户端实例
Nov 22 Python
Python多线程编程(一):threading模块综述
Apr 05 Python
python Celery定时任务的示例
Mar 13 Python
用Python逐行分析文件方法
Jan 28 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python实现仿射密码的思路详解
Apr 23 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
如何编写python的daemon程序
Jan 07 Python
Django路由层如何获取正确的url
Jul 15 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/04/09 欧美动漫
基于php-fpm 参数的深入理解
2013/06/03 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
python编写的最短路径算法
2015/03/25 Python
python中set()函数简介及实例解析
2018/01/09 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python常见数字运算操作实例小结
2019/03/22 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
资料员岗位职责
2013/11/17 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
建筑工地宣传标语
2014/06/18 职场文书
白鹤梁导游词
2015/02/06 职场文书
退休欢送会主持词
2015/07/01 职场文书
户外拓展训练感想
2015/08/07 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
Python实现Hash算法
2022/03/18 Python