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获取文件ssdeep值的方法
Oct 05 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
python模拟Django框架实例
May 17 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
Django学习教程之静态文件的调用详解
May 08 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
Python3如何使用range函数替代xrange函数
Oct 05 Python
教你用python控制安卓手机
May 13 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Python 的描述符 descriptor详解
2016/02/27 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
Python猜数字算法题详解
2020/03/01 Python
Python之字典对象的几种创建方法
2020/09/30 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
《陋室铭》教学反思
2014/02/26 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
岗位竞聘书范文
2014/03/31 职场文书
大学毕业寄语大全
2014/04/10 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
财务工作失误检讨书
2015/02/19 职场文书
中学生自我评价范文
2015/03/03 职场文书
2015年防汛工作总结
2015/05/15 职场文书
学校教学工作总结2015
2015/05/19 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python