Python3+Appium学习笔记03-启动app
这个是appium相关的官方api地址:http://appium.io/docs/en/about-appium/api/
如同selenium进行自动化测试时,需要先创建一个浏览器实例一样。在使用appium进行自动化测试时,需要先创建一个被测app的实例。下图是官网给的示例,emmm貌似开头重复了。
所以创建一个app实例是通过Remote()方法来的,其中第一个参数是appium服务端的地址,第二个参数是具体的请求内容
看文档好像是一个post请求,这个请求内容是一个json格式的请求实体
官网的示例只给了一些必须的参数。很多其他的参数我也没在官网看到。如果有需要可以百度一下。感觉知道几个必须的暂时够用了
platformName 被测试设备的系统
platformVersion 被测试设备系统版本号
deviceName 被测试设备的设备名
上面三个字段应该是必传字段
autoLaunch 是否自动安装并启动应用
app apk安装路径
appPackage apk包名
appActivity apk入口
对于安卓机器来说,app这个参数就是重新装apk并启动。appPackage和appActivity就是从手机已有的应用启动。官方建议将这三个参数都传。app参数的优先级貌似高于另外两个。
接下来看下怎么获取相关参数的数据
deviceName可以通过cmd命令行输入adb devices命令来获得
appPackage和appActivity获取的方式很多。网上有很多方式介绍。推荐较多的是通过aapt去从apk包里找出相应信息。但是返回的信息较多。
我使用的方式是手机连接电脑,然后打开你想要测试的应用。cmd中输入命令adb shell "dumpsys activity | grep mFocusedActivity" 比如打开淘宝
第一个com.taobao.taobao是包名。第二个com.taobao.tao.TBMainActivity就是入口
接下来看下代码效果
1.首先打开appium
2.点击启动服务器
3.如果是通过代码的话,到这一步就可以了。如果想通过appium desktop去启用的话可以点启动会话按钮,把相应参数添加进去就可以了
4.代码需要请求的服务器地址
5.具体代码
from appium import webdriver desired_caps = {
'platformName': 'Android',
'platformVersion': '7.1.2',
'deviceName': '1b6ca8f',
'appPackage': 'com.taobao.taobao',
'appActivity': 'com.taobao.tao.TBMainActivity'
}
webdriver.Remote('127.0.0.1:4723/wd/hub', desired_caps)
我这边是启动成功了,第一次使用时,应该会在手机上请求安装一个Appium settings的app。另外就是启动app时会有一些授权提示,比如定位信息等。这些只能手动点下。貌似还没有办法代码通过。
也可以试下app参数去安装
Python3+Appium学习笔记03-启动app的更多相关文章
- Python3+Appium学习笔记07-元素定位工具UI Automator Viewer
这篇主要说下如何使用UI Automator Viewer这个工具来定位元素.这个工具是sdk自带的.在sdk安装目录Tools目录下找到uiautomatorviewer.bat并启动它 如果启 ...
- Python3+Appium学习笔记01-环境配置(上)
公司可能也有关于对app自动化的一些想法,让我去研究下.当然以移动互联网的热度.对于app自动化测试技术听闻已久.也一直想要去学习.正好.这次可以在工作时间中学习.emmm.希望自己能坚持把这个系列更 ...
- Python3+Appium学习笔记05-报错及解决方法
记录一下使用期间各种报错和解决方法,毕竟搜了半天才找到解决方法.另外提示一下.优先看官方文档. 报错前面都是一样,就是说在处理的时候,服务器发生了一个未知的错误.然后才是具体报错信息 1)seleni ...
- Python3+Appium学习笔记09-元素定位android_uiautomator
appium是使用了uiautomator的框架的,所以uiautomator所带的定位方式.appium也是支持的 需要使用appium中find_element_by_android_uiauto ...
- Python3+Appium学习笔记08-元素定位
appium整合了不同的自动化测试驱动程序.而新版本appium desktop 中安卓是使用UI Automator2来作为驱动程序的.以前版本是使用UI Automator1或 Selendroi ...
- Python3+Appium学习笔记06-noReset参数
百度很多文章说noReset这个参数是用来防止重复安装app的.可能这是以前的用法.目前最新版本appium默认是清除session信息,并且不会删除应用的. noReset这个参数,根据appi ...
- Python3+Appium学习笔记04-自动下载apk
在项目中,app更新后,都会发布新的apk版本,然后去蒲公英对应的网站上扫码下载对应的apk进行测试.所以就在想,通过app参数进行安装时,是否可以先通过代码去拉取一遍最新的apk安装包. 因为学 ...
- Python3+Appium学习笔记02-环境配置(下)
配置所需软件及我当前使用的版本: 1)java jdk 1.8.0 2)android sdk 24.4.1 3)Python3 3.7.3 4)Appium-Python-Client 5)n ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
随机推荐
- 热更新之lua框架设计
目前中大型游戏项目包含部分VR与AR项目,都需要热更新与在线修改Bug等功能实现,虽然Xlua等插件已经给出了关于C#与Lua语言之间的双向无缝调用实现,但是就热更新的架构却没有提出,这需要广大游戏公 ...
- 【ARM-Linux开发】cmem模块/DVSDK2.0
1. CMEM--高速缓存一致性问题的解决多核设计中,共享的二级高速缓存之间数据可能不一致,不同CPU内核的私有高速缓存也可能存在数据不一致,称为高速缓存的一致性问题.解决一致性问题的方法从整体上分可 ...
- 洛谷 题解 P2010 【回文日期】
因为有8个字符,所以可得出每一年只有一个回文日期. 因此只要判断每一年就行了. 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这 ...
- 【AtCoder】ARC066
ARC066 C - Lining Up 判断是否合法即可,合法是\(2^{\lfloor \frac{N}{2}\rfloor}\) 不合法就是0 #include <bits/stdc++. ...
- Python基础 第三章 使用字符串(1)精简版
所有标准序列操作(索引,切片,乘法,成员资格检查,长度,最小值,最大值)都适于字符串. 但,字符串是不可变得,故所有得元素赋值和切片赋值都是非法的. 1. %s 转换说明符 设置字符串格式 %左边指定 ...
- django的admin密码忘记了怎么办?一分钟解决!!
django-admin确实是在实际开发中很方便,然后项目开发一段时间放到一边,等你再去玩你当初的项目的时候,可能抱歉你的admin密码忘记了,其实解决办法有很多种,我直说最快的一种,直接重新建立一个 ...
- User space(用户空间) 与 Kernel space(内核空间)
出处: User space 与 Kernel space (整理)用户空间_内核空间以及内存映射 学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel spac ...
- Date及DateFormat用法
Date 与DateFormat之间的转化String <————>Date Date与Calendar 之间的转化Long<————>Date 日历小程序 Scanner i ...
- ide的debug
webstom 新建立一个配置项 找到webpack.config.js,最后一行加上 devtool: "source-map" 然后点击debug
- Linux weblogic启停
一般weblogic启停在windows下很方便使用图标方式.但是在linux下需要杀掉weblogic进程才能真正关掉weblogic. 1.查询weblogic进程 ps -ef | grep & ...