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导入txt数据到mysql的方法
Apr 08 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
用python处理MS Word的实例讲解
May 08 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
对pandas处理json数据的方法详解
Feb 08 Python
Django 反向生成url实例详解
Jul 30 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
python实现飞船大战
Apr 24 Python
Python3-异步进程回调函数(callback())介绍
May 02 Python
Python urllib.request对象案例解析
May 11 Python
Python实现弹球小游戏
Aug 01 Python
python pyg2plot的原理知识点总结
Feb 28 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
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python程序语言快速上手教程
2012/07/18 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python中字符串List按照长度排序
2019/07/01 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
python 实现Harris角点检测算法
2020/12/11 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
教师新年寄语
2014/04/03 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
老人节标语大全
2014/10/08 职场文书
学校政风行风整改方案
2014/10/25 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
借条如何写
2015/05/26 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
自荐信范文
2019/05/20 职场文书
Python pandas之求和运算和非空值个数统计
2021/08/07 Python