当前位置: 移动技术网 > IT编程>脚本编程>Python > Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

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

2019年07月19日  | 移动技术网IT编程  | 我要评论

谢冰冰,闫凤娇第六季,关照洋

简介

这篇宏哥就带着小伙伴们分享一下如何连接模拟器(电脑版的虚拟手机),然后再安装一款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的版本,参考链接:

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(超详解),希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网