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

北京-宏哥 · 2025年01月06日 · 850 次阅读

1.简介

  上一篇讲解完模拟器的安装、配置好以后,就好比我们手机已经买好,并且系统已经做好了,就差我们用数据线和电脑连接开始实战了,这篇宏哥就带着小伙伴们和童鞋们趁热打铁,讲解和分享一下如何连接模拟器(电脑版的虚拟手机),然后再安装一款 APP-淘宝为例。

2.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 代码,并查看结果,如下图所示(暂时不理会出错问题,后续会讲解)但是在模拟器看到新增了两个小机器人,就表示已经成功了:

3.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 # coding=utf-8
 2 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
 3 
 4 # 2.注释:包括记录创建时间,创建人,项目名称。
 5 '''
 6 Created on 2025-1-6
 7 @author: 北京-宏哥   QQ交流群:707699217
 8 Project:学习和使用python代码appium+pycharm+连接夜神模拟器
 9 '''
10 # 3.导入模块
11 from appium import webdriver
12 import time
13 desired_caps = {}
14 desired_caps['platformName'] = 'Android'   #android的apk还是IOS的ipa
15 desired_caps['platformVersion'] = '8.0'  #android系统的版本号
16 desired_caps['deviceName'] = 'emulator-5554'    #手机设备名称,通过adb devices  查看
17 desired_caps['appPackage'] = 'com.taobao.taobao'  #apk的包名
18 desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome'  #apk的launcherActivity
19 # desired_caps['unicodeKeyboard'] = True   #使用unicodeKeyboard的编码方式来发送字符串
20 # desired_caps['resetKeyboard'] = True   #将键盘给隐藏起来
21 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) #启动服务器地址,后面跟的是手机信息

好了,到此夜神模拟器和 AVD 模拟器启动淘宝 APP,已经全部演示完成,大功告成,降龙十八掌已全部打完,打完收回来。额。。。。。还差一掌才十七掌(亢龙有悔)

4.小结(亢龙有悔)

亢龙有悔,将前边十七掌合起来总结一下:

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 的版本,参考链接cmd 中提示 appium 错误

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(强制结束该进程以及所有子进程)。

不知道端口占用的小伙伴们可以看宏哥的这篇查看端口占用的博文:传送门

4、宏哥可能会问为什么推荐夜神模拟器而不推荐 AVD 模拟器了,是不是宏哥被夜神收买了,实际不是这样的,因为国内现状就是绝大多数给 QA 人员配置的电脑不是很高,而那个 AVD 有需要高配置,否则卡的一比,所以就给小伙伴们推荐夜神了,而不是 Google 自带的模拟器。当然了如果你的电脑配置高那就按照你的喜好和口味选择适合自己的才是硬道理。

5、好了,就给小伙伴们介绍这两种就够用了,如用其他的可以参考这一篇文章。都是万变不离其宗。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册