详解appium+python 启动一个app步骤


Posted in Python onDecember 20, 2017

询问度娘搭好appium和python环境,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧!

如何启动APP?1.获取包名;2.获取launcherActivity。获取这两个关键东西的方法很多,推荐使用sdk自带的aapt:aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料。

一、下载aapt:

1.在安卓-sdk里面双击SDK-manager,下载build-tools:

详解appium+python 启动一个app步骤

2.勾选build-tools,选中一个版本

详解appium+python 启动一个app步骤

3.下载完成后,在D:\APP\android-sdk_r24.4.1-windows\android-sdk-windows\build-tools\25.0.2目录下找到aapt.exe,并将该路径设置环境变量,添加到path下;

详解appium+python 启动一个app步骤

4.打开cmd,输入aapt出现如下界面,说明环境OK了

详解appium+python 启动一个app步骤

二、获取apk包名

1.将准备测试的apk放到D盘某个目录,如D:\test

2.打开cmd,输入指令aapt dump badging D:\test\xxx.apk

3.以taobao.apk为例,如图:

详解appium+python 启动一个app步骤

4.在这里可以看到apk包名:com.taobao.taobao

三、获取launcherActivity

1.接着上一步操作,cmd屏幕拖到中间找到launcherActivity

2.这里可以看到,淘宝的laucherActivity值为com.taobao.tao.welcome.Welcome

详解appium+python 启动一个app步骤

四、写脚本

1.platformName:这里是android的apk

2.deviceName:手机设备名称,通过adb devices查看

3.platformVersion:android系统的版本号

4.appPackage:apk包名

5.appActivity:apk的launcherActivity

# -*- coding:utf-8 -*-
'''本段代码非淘宝,而是本人实际操作的app'''
import os, time, unittest
from selenium import webdriver
PATH = lambda p:os.path.abspath(os.path.join(os.path.dirname(__file__),p))
desired_caps = {}
desired_caps['platformName'] = 'Android' # 设备系统
desired_caps['platformVersion'] = '6.0.1' # 设备系统版本
desired_caps['deviceName'] = 'MI 4LTE' # 设备名称
desired_caps['app'] = PATH(r"E:\tests\GuoYuB2B_2.1.apk")
desired_caps['appPackage'] = 'com.guoyu.b2b'
desired_caps['appActivity'] = 'com.guoyu.b2b.ui.activity.SplashActivity'
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
time.sleep(5)

五、运行appium

1.启动appium,右上角变成三角形

详解appium+python 启动一个app步骤

2.确认手机连上电脑

详解appium+python 启动一个app步骤

3.在pycharm运行脚本,随后在手机(手机不要设置锁屏),会看到app被自动启动了!!!

4.成功!!

后面继续一起学习!!!以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学Python之hello world
May 21 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
python实现求最长回文子串长度
Jan 22 Python
Python实现k-means算法
Feb 23 Python
python 实现在Excel末尾增加新行
May 02 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
pymongo中group by的操作方法教程
Mar 22 Python
Puppeteer使用示例详解
Jun 20 Python
python机器学习库scikit-learn:SVR的基本应用
Jun 26 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 #Python
Python实现感知机(PLA)算法
Dec 20 #Python
详解Python nose单元测试框架的安装与使用
Dec 20 #Python
使用python实现knn算法
Dec 20 #Python
python实现kNN算法
Dec 20 #Python
解析Python中的eval()、exec()及其相关函数
Dec 20 #Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 #Python
You might like
php横向重复区域显示二法
2008/09/25 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
详解jQuery中的事件
2016/12/14 Javascript
js实现交通灯效果
2017/01/13 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
竞选学生会演讲稿
2014/04/25 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
MYSQL 运算符总结
2021/11/11 MySQL
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android