注:仅用作自动化实践研究,请勿滥用
一、环境搭建
3、配置环境变量:新增变量名:ANDROID_HOME,对应值为AndroidSDK路径。如:D:\Android\Sdk。然后找到Path,并在里面添加:%ANDROID_HOME%\platform-tools。
二、简单介绍
1、启动appium。
(1)直接点击startserver。
(2)启动会话,点击第一个按钮。当前页面可以查看实时日志,查看所有日志可点击第二个按钮。停止此次服务会话,点击第三个按钮停止服务。
会话启动后如下图页面:
3、连接手机前,需要在手机设置开发者模式中设置,允许USB调试。
desiredcapbilities为AppiumClient向AppiumServer发送的,其内容为一个json格式的键值对。
platformName:平台名字,如:ios、androidplatformVersion:对应的平台版本deviceName:设备名,手机型号appPackage:应用的包名appActivity:应用的ActivityautomationName:自动对于appPackage和appActivity参数如何查找呢?
(1)先找到获取apk信息工具(androidSDK的aapt工具)所在的位置;(Android\Sdk\build-tools\29.0.3\aapt.exe)
(2)下载支付宝app,记住存放位置;
(3)打开命令行,输入以下信息:aapt.exedumpbadgingD:\alipay_wap_main.apk(支付宝apk路径)
在输出信息中可以找到‘appPackage’和‘appActivity’的值:
三、开发步骤
1、appium参数配置。
如下图是我的配置:
配置完成后,点击startsession即可运行手机支付宝应用。
2、进入支付宝应用后,使用鼠标点击左边支付宝界面,在右边会展示点击项的信息,需要进入到指定项中时,点击右边上方的Tap进入。
依次点击:
顺序为:进入支付宝--->更多--->蚂蚁森林--->查看多好友--->依次点击进入好友蚂蚁森林主页。在每次点击时都记录应用想的source-id。在代码编辑的时候需要使用。
也可以在页面顶部有个小眼睛,点击小眼睛可以对操作进行代码录制,在录制时,右上角可以选择代码类型,如Java,Python等。
3、Python实现步骤
(1)安装appium包:pipinstallappium。Python的appium模块需要先打开appium客户端,否则无法使用。
(2)检测有无能量球。如下图,如果页面上有能量球时,页面上classname(android.widget.Button)的数量大于5,并且在能量球的text中包含“能量”字样。不可收取的能量球是不包含“能量”这两个字的。所以根据classname的数量和text中是否包含“能量”二字就可以判断是否有可收取的能量球。
为什么要classname的数量要大于5呢?因为页面上基本的按钮有五个,比如:成就、浇水、弹幕等。
代码如下:
items=driver.find_elements_by_class_name("android.widget.Button")iflen(items)>5:foriinitems:if'能量'ini.text:print('收取{0}的{1}'.format(name,i.text.replace('收集','')))i.click()#driver.find_elements_by_class_name('android.widget.Image')[1].click()time.sleep(0.5)
(3)在收取第一个好友的能量后,需要接着进入第二个好友的主页,此时采取的方式是将页面向上滑动约一个好友框的高度。
start_x=500start_y=1910distance=195#约一个框的高度driver.swipe(start_x,start_y,start_x,start_y-distance)#向上滑动一个框的高度#driver.swipe(分别表示滑动的起始和终点位置的x/y坐标)