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中日期和时间格式化输出的方法小结
Mar 19 Python
python对html代码进行escape编码的方法
May 04 Python
详解用python实现简单的遗传算法
Jan 02 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
Python读写docx文件的方法
May 08 Python
Python生成器generator用法示例
Aug 10 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
python扫描线填充算法详解
Feb 19 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
一行代码python实现文件共享服务器
Apr 22 Python
Python基础学习之奇异的GUI对话框
May 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
PHP自定义大小验证码的方法详解
2013/06/07 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
matplotlib实现区域颜色填充
2019/03/18 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
pygame实现弹球游戏
2020/04/14 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
企业项目策划书
2014/01/11 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
财务个人年度总结范文
2015/02/26 职场文书
企业工会工作总结2015
2015/05/13 职场文书
2019各种承诺书范文
2019/06/24 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
Nginx配置之禁止指定IP访问
2022/05/02 Servers
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS