1 Appium环境搭建
Appium介绍
Appium是一个手机应用端的自动化工具,可以代替人力做一些重复性的工作,也可以爬取指定App内的一些相关信息。
环境搭建
安装client模块
首先安装appium-python-client模块,使用PyCharm安装的话,过程及其的缓慢,所以建议使用国内源进行下载:
Python -m pip install appium-python-client -i https://mirrors.aliyun.com/pypi/simple/
安装Appium 服务端
Appium服务端提供了利用Python对手机操作的一个途径,下载完成后,一路下一步就好,但是值得注意的是,其中一步的操作是要求选择服务端为管理员提供还是所有人提供,这里一定要选择所有人,不然程序会不断报错。
安装JDK、Android SDK
这两者的安装也是一路下一步就好,在安装完成之后,记得要把两者填加到环境变量中去,建议名称分别是JAVA_HOME 、ANDROID_HOME 。此外就是Android SDK弄好之后,最好再配置一下环境变量加入到adb所在的目录。
(Appium服务端、JDK、Android SDK
网盘链接:https://pan.baidu.com/s/19C9fGmoXne8DgfXhrTB2TQ
提取码:kgwb)
夜神模拟器连接
启动模拟器之后,将平板模式设定为手机模式,模拟器类型建议选择华为,进入手机设置,选择关于平板电脑,不断点击其中的版本号,直到提示开发者模式。
在开发者选项中打开USB调试。随后打开命令窗口,输入adb devices -l命令,这时大体会出现这样的回复
然后连接夜神模拟器,输入命令:adb connect 127.0.0.1:62001
随后再次输入adb devices -l,出现类似以下的界面代表连接成功。
!!!注意:这里有个大坑,如果用配置好环境变量的adb输入以上命令,且命令行回复的结果也正常,但是在启动Appium服务端后,程序就是不能正常运行的话,那就到配置好环境变量的adb目录下去启动adb,再输入这些命令。切记!!!
2元素定位方式
Uiautomateviewer
这个工具在安装好的Android SDK目录下的tools\bin中,全称是uiautomatorviewer.bat。
双击运行之后会出现一个界面:
其中上面左数第二个按钮负责抓取模拟器的当前页面,随后鼠标点击抓取页面中的元素,界面的右侧会出现其对应的ID等元素值。
在将当前页面分析完毕之后,再次点击上面左数第二个按钮,会抓取新的页面,随后就可以继续进行分析。
Appium Inspector
这个工具在安装好的Appium服务端中,以管理员身份运行!!!Appium服务端,随后点击启动服务器,会出现以下界面
点击右上角的放大镜,出现以下界面:
按照自己的需求在所需功能,下面那一块,分别填写好对应数值,这里以bilibili为例
填写好后,启动会话出现如下界面:
元素的定位也是根据鼠标的选择,鼠标点击哪里,右侧就会出现对应的元素值。
页面的刷新,点击这里。
如果你应用已经安装在手机上了,可以直接打开手机上该应用,进入到你要操作的界面
然后执行
adb shell dumpsys activity recents | find "intent={"
会显示如下,最近的 几个 activity 信息,
intent={act=android.intent.action.MAIN cat=
[android.intent.category.LAUNCHER] flg=0x10200000
cmp=tv.danmaku.bili/.ui.splash.SplashActivity}
intent={act=android.intent.action.MAIN cat=
[android.intent.category.HOME]
flg=0x10000300cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher}
intent={flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity bnds=[48,1378][10322746]}
intent={flg=0x10000000 cmp=com.tencent.mm/.ui.LauncherUI}
其中第一行就是当前的应用,我们特别关注最后
cmp=tv.danmaku.bili/.ui.splash.SplashActivity
应用的package名称就是 tv.danmaku.bili
应用的启动Activity就是 .ui.splash.SplashActivity
有apk
如果你已经获取到了 apk,在命令行窗口执行
d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging
d:\tools\apk\bili.apk | find "package: name="
输出信息中,就有应用的package名称
package: name='tv.danmaku.bili' versionCode='5531000'
versionName='5.53.1' platformBuildVersionName='5.53.1'
compileSdkVersion='28' compileSdkVersionCodename='9'
在命令行窗口执行
d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging
d:\tools\apk\bili.apk | find "launchable-activity"
输出信息中,就有应用的启动Activity
launchable-activity: name='tv.danmaku.bili.ui.splash.SplashActivity' label='' icon=''