简介
这篇宏哥就带着小伙伴们分享一下如何连接模拟器(电脑版的虚拟手机),然后再安装一款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、参考代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 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)参考代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 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(超详解),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://www.cnblogs.com/du-hong/p/11022247.html