详解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函数返回多个值的示例方法
Dec 04 Python
Python自动化测试工具Splinter简介和使用实例
May 13 Python
python自定义异常实例详解
Jul 11 Python
pycharm远程调试openstack代码
Nov 21 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
Python入门必须知道的11个知识点
Mar 21 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
python实现同一局域网下传输图片
Mar 20 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
Django框架安装及项目创建过程解析
Sep 14 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
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
php遍历数组的方法分享
2012/03/22 PHP
php适配器模式介绍
2012/08/14 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python sqlite的Row对象操作示例
2019/09/11 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
以权谋私检举信范文
2015/03/02 职场文书
工作会议通知
2015/04/15 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android