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 IDLE加上自动补全和历史功能
Nov 30 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
Django中Forms的使用代码解析
Feb 10 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
May 10 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
Python坐标线性插值应用实现
Nov 13 Python
flask框架json数据的拿取和返回操作示例
Nov 28 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
Python中else的三种使用场景
Jun 16 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
JavaScript游戏之优化篇
2010/11/08 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
机械电子工程专业推荐信范文
2013/11/20 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
电视购物广告词
2014/03/19 职场文书
协议书模板
2014/04/23 职场文书
公司年会策划方案
2014/05/17 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
pandas中pd.groupby()的用法详解
2022/06/16 Python