Appium+python自动化之连接模拟器并启动淘宝APP(超详解)


Posted in Python onJune 17, 2019

简介

这篇宏哥就带着小伙伴们分享一下如何连接模拟器(电脑版的虚拟手机),然后再安装一款APP-淘宝为例。

一、appium+pycharm+连接夜神模拟器并启动淘宝APP(推荐)

1、首先打开pycharm并写好代码,这里以淘宝APK作为测试Demo,淘宝APK我是放在电脑桌面(或者放置同代码同个目录下)。如下图所示

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

其中|:driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) #这个地址是怎么来的呢?,见appium设置项,如下图所示

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

2、打开appium并点击右上角三角符号,如下图所示

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

3、打开夜神模拟器,如下图所示

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

4、打开CMD,进入夜神模拟器的安装路径下:D:\software\nox\Nox\bin,运行指令:nox_adb.exe connect 127.0.0.1:62001和指令adb devices查看设备名,如下图所示

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

5、运行pycharm代码,并查看结果,如下图所示(暂时不理会出错问题,后续会讲解)但是在模拟器看到新增了两个小机器人,就表示已经成功了:

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

6、参考代码

# coding=utf-8
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-6-17
@author: 北京-宏哥 QQ交流群:707699217
Project:学习和使用python代码appium+pycharm+连接夜神模拟器
'''
# 3.导入模块
from appium import webdriver
import time
desired_caps = {}
desired_caps['platformName'] = 'Android' #android的apk还是IOS的ipa
desired_caps['platformVersion'] = '4.4.2' #android系统的版本号
desired_caps['deviceName'] = '127.0.0.1:62001' #手机设备名称,通过adb devices 查看
desired_caps['appPackage'] = 'com.taobao.taobao' #apk的包名
desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome' #apk的launcherActivity
# desired_caps['unicodeKeyboard'] = True # 使用unicodeKeyboard的编码方式来发送字符串
# desired_caps['resetKeyboard'] = True  # # 将键盘给隐藏起来
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) ##启动服务器地址,后面跟的是手机信息

二、appium+pycharm+连接AVD模拟器(不推荐)

1、第一、二步和连接夜神模拟器一样。

2、启动AVD模拟器(这个上一篇(传送门)都给小伙伴们演示过了,不清楚的返回头复习一下,即可。相当简单的)

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

3、 我们在进行测试的时候,我们肯定需要查看设备连接是否成功,设备的信息是否能够获取。adb devices 就可以实现,直接在命令行控制台中输入“ adb devices ”,我们就可以看见如图连接成功:

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

4、修改代码,将一些模拟器的信息修给了即可

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

5、未运行代码前的Google自带的AVD模拟器

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

6、运行代码后的运行结果

(1)AVD模拟器:

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

稍等一会,淘宝APP自动启动了:

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

同意协议,淘宝APP就可以在AVD模拟器上,启动起来进入主页

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

(2)代码运行结果:

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

(3)appium运行结果:

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

(7)参考代码:

# coding=utf-8
 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
 
 # 2.注释:包括记录创建时间,创建人,项目名称。
 '''
 Created on 2019-6-17
 @author: 北京-宏哥 QQ交流群:707699217
 Project:学习和使用python代码appium+pycharm+连接夜神模拟器
 '''
 # 3.导入模块
 from appium import webdriver
 import time
 desired_caps = {}
 desired_caps['platformName'] = 'Android' #android的apk还是IOS的ipa
 desired_caps['platformVersion'] = '8.0' #android系统的版本号
 desired_caps['deviceName'] = 'emulator-5554' #手机设备名称,通过adb devices 查看
 desired_caps['appPackage'] = 'com.taobao.taobao' #apk的包名
 desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome' #apk的launcherActivity
 # desired_caps['unicodeKeyboard'] = True #使用unicodeKeyboard的编码方式来发送字符串
 # desired_caps['resetKeyboard'] = True #将键盘给隐藏起来
 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) #启动服务器地址,后面跟的是手机信息

好了,到此夜神模拟器和AVD模拟器启动淘宝APP,已经全部演示完成,大功告成,降龙十八掌已全部打完,打完收回来。额。。。。。还差一掌才十七掌(亢龙有悔)

三、小结(亢龙有悔)

亢龙有悔,将前边十七掌合起来总结一下:

1、介绍一下, 标记的信息,如何填写和查找

deviceName:这个是设备名称,可以选择模拟器设置的属性中的IMEI填入,或者手机名称

udid:这里填写上边让你记住的东西,如果使用其他模拟器或者真机等连接,同样的位置,记下就行

appPackage和appActivity,教大家一个相对简单的方法来获取,当然也可以采取反编译(app压缩成rar或者zip,然后打开看xml文件)的手段,总之,方法很多!

进入sdk\build-tools\版本号 的目录下(配置系统变量后就?〔挥媒?肓耍??md命令:

aapt dump badging C:\apps\xxxxx.apk (路径\app包名,也就是安装包在你电脑的位置)

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

看下,上边标记的就是我们要的两个值!

至于下边的 URL 是固定格式,不要研究为什么(千年的王八的蛋,万年龟的屁股——喝一口水淡(蛋)定一下,这是规定(龟腚))!

开始运行报错了,最后通过上边的方法查看是因为appActivity错误了,修改版本号和appActivity后还是继续报错,说:安装包不存在,然后在appium中配置

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

配置好以后,按上边的步骤运行代码,可以看到appium日志没有报错、运行代码没有报错、成功的将淘宝的安装包安装在夜神模拟器上了

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

2、遇到的坑1:在CMD指令中输入appium,提示如下图所示

Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

解决方式:降低nodejs的版本,参考链接:https://3water.com/article/163240.htm

3、遇到的坑2:运行appium提示error: Couldn't start Appium REST http interface listener. Requested port is already in use. Please make sure there's no other instance of Appium running already.

解决方式:因为端口被node占用,可以用如下退出node,找出PID命令::netstat -ano|findstr "7922" (这个4723是被占用的端口,我们需要先找该占用该端口程序的PID)。停止PID命令:taskkill /pid[进程码] -t(结束该进程) -f(强制结束该进程以及所有子进程)。

不知道端口占用的小伙伴们可以看宏哥的这篇查看端口占用的博文:传送门

总结

以上所述是小编给大家介绍的Appium+python自动化之连接模拟器并启动淘宝APP(超详解),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python中的__init__ 、__new__、__call__小结
Apr 25 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
python numpy中multiply与*及matul 的区别说明
May 26 Python
Python中的变量与常量
Nov 11 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 #Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 #Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 #Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 #Python
对PyQt5中树结构的实现方法详解
Jun 17 #Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 #Python
使用python接入微信聊天机器人
Mar 31 #Python
You might like
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php include,include_once,require,require_once
2008/09/05 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
python实现bitmap数据结构详解
2014/02/17 Python
python uuid模块使用实例
2015/04/08 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
团员学习总结的自我评价范文
2013/10/14 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
逃出克隆岛观后感
2015/06/09 职场文书