Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
作者:北京-宏哥
简介
这篇宏哥就带着小伙伴们分享一下如何连接模拟器(电脑版的虚拟手机),然后再安装一款APP-淘宝为例。
一、appium+pycharm+连接夜神模拟器并启动淘宝APP(推荐)
1、首先打开pycharm并写好代码,这里以淘宝APK作为测试Demo,淘宝APK我是放在电脑桌面(或者放置同代码同个目录下)。如下图所示
其中|:driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) #这个地址是怎么来的呢?,见appium设置项,如下图所示
2、打开appium并点击右上角三角符号,如下图所示
3、打开夜神模拟器,如下图所示
4、打开CMD,进入夜神模拟器的安装路径下:D:\software\nox\Nox\bin,运行指令:nox_adb.exe connect 127.0.0.1:62001和指令adb devices查看设备名,如下图所示
5、运行pycharm代码,并查看结果,如下图所示(暂时不理会出错问题,后续会讲解)但是在模拟器看到新增了两个小机器人,就表示已经成功了:
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模拟器(这个上一篇(传送门)都给小伙伴们演示过了,不清楚的返回头复习一下,即可。相当简单的)
3、 我们在进行测试的时候,我们肯定需要查看设备连接是否成功,设备的信息是否能够获取。adb devices 就可以实现,直接在命令行控制台中输入“ adb devices ”,我们就可以看见如图连接成功:
4、修改代码,将一些模拟器的信息修给了即可
5、未运行代码前的Google自带的AVD模拟器
6、运行代码后的运行结果
(1)AVD模拟器:
稍等一会,淘宝APP自动启动了:
同意协议,淘宝APP就可以在AVD模拟器上,启动起来进入主页
(2)代码运行结果:
(3)appium运行结果:
(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\版本号 的目录下(配置系统变量后就尅不用进入了),cmd命令:
aapt dump badging C:\apps\xxxxx.apk (路径\app包名,也就是安装包在你电脑的位置)
看下,上边标记的就是我们要的两个值!
至于下边的 URL 是固定格式,不要研究为什么(千年的王八的蛋,万年龟的屁股——喝一口水淡(蛋)定一下,这是规定(龟腚))!
开始运行报错了,最后通过上边的方法查看是因为appActivity错误了,修改版本号和appActivity后还是继续报错,说:安装包不存在,然后在appium中配置
配置好以后,按上边的步骤运行代码,可以看到appium日志没有报错、运行代码没有报错、成功的将淘宝的安装包安装在夜神模拟器上了
2、遇到的坑1:在CMD指令中输入appium,提示如下图所示
解决方式:降低nodejs的版本,参考链接:https://www.jb51.net/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(超详解),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!