python自动化操作安卓app

由于个人的强迫症缘故,代码均没有做实际测试,由于公司电脑比较卡,自己电脑强迫症,相信各位知道大概都可以找解决方案,解决不了就找我私聊

一.1、简单了解(其中个人觉得就这个模拟器可以看下其他请参照安装教程中来)

安装链接

出现了手机版本过高

解决方案

课程地址:链接

一.2、安装教程(请严格按照我的版本装)

1、安装jdk

安装jdk1.8我这边版本为

C:\WINDOWS\system32>java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

2、安装安卓sdk

网站地址
在这里插入图片描述
在这里插入图片描述

解压注意目录不要有中文
进入刚刚安装的目录中双击SDK Manager.exe
在这里插入图片描述

注意这边开始介绍需要安装的东西,你可以一个栏目一个栏目来 东西较多 你慢慢来嘛
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

配置环境变量

  1. 新增
    在这里插入图片描述
  2. 编辑

在这里插入图片描述

  1. 新增
    在这里插入图片描述

二、开始

1、首先查看手机版本信息

点开手机或者模拟机的本机信息

2、安装pip包

pip install appium-python-client

3、adb基本命令

# 链接服务器 
adb connect 127.0.0.1:62001
# 查看链接哪台服务器
adb devices

4、查看包名和启动页面

需要进入你安卓sdk安装目录的build-tools中找到你想用的版本的目录下进行cmd

# 注意下面不要带有中文路径
aapt dump badging xxx盘下面的apk安装包

在这里插入图片描述
往下滑找到启动页面
在这里插入图片描述

5、模拟器安装apk

只需要拖着app进入到模拟器即可

6、了解执行流程

在这里插入图片描述

三、py代码打开模拟器

1、实现app在模拟器上打开

from appium import webdriver
from appium.options.common import AppiumOptions

desired_caps = {
    "platformName":"Android", #操作系统
    "platformVersion":"5.1.1", #操作版本 根据查看手机版本信息获取
    "deviceName":"xiaomi", #设备名称 可以随便写 没有特殊限制
    "appPackage":"", #包名 根据命令获取
    "appActivity":"", #入口启动项目页面
    "noReset":True
}

# 这边看视频版本有些老了 就网上找到其他博主的代码复制了过来
option = AppiumOptions()
option.set_capability("platformName", "Android")
option.set_capability("platformVersion", "5.1.1")
option.set_capability("deviceName", "xiaomi")
option.set_capability("noReset", True)
option.set_capability("appPackage", "com.tencent.qqlite")
option.set_capability("appActivity", "com.tencent.mobileqq.activity.SplashActivity")

# 这边对应端口就看你安装appium对应的端口换掉就可以了
driver = webdriver.Remote('http://localhost:4723/wd/hub', options=option)

2、appium日志查看

在这里插入图片描述
在这里插入图片描述

查看对应的日志即可

  1. 蓝色:代表执行了对应安卓sdk的日志
  2. 黄色:代表警告可以不看
  3. 灰色:代表py代码通过命令执行对应appiumServer的操作

日志中显示的执行流程
在这里插入图片描述
随后一直重复执行http请求……等等

四、定位工具(注意每个都会在app模拟器中装入软件,需要卸载掉再换方式连接)

4.1安卓sdk自带的定位工具(注意版本问题,不建议使用建议使用下面appium自带的)

1、使用工具定位

采用的是安卓sdk自带的定位工具在目录E:\app\android-sdk-windows\toolsuiautomatorviewer.bat

打开后点击这个即可 这个也可以做刷新操作,会刷新同步app的现在的页面
在这里插入图片描述
定位的话就找对应的点着屏幕去定位吧

2、uiautomatorviewer.bat常见的标签

  1. text
  2. resoureid
  3. class:元素标签
  4. content-desc:元素功能描述(一般语音播报等、比如淘宝)
  5. 再其次下面就是是否点击等事件(关注比较少)

4.2appium带的定位工具

1、启动

先启动,再点击放大镜

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、定位元素

在这里插入图片描述

点击到对应的选框
在这里插入图片描述

五、py定位元素

由于跟web差不多本人就不在往下学习了 遇到问题chatgpt让他写代码 你看了记录下学习就可以了

from appium import webdriver
from appium.options.common import AppiumOptions
from appium.webdriver.common.appiumby import AppiumBy

desired_caps = {
    "platformName":"Android", #操作系统
    "platformVersion":"5.1.1", #操作版本 根据查看手机版本信息获取
    "deviceName":"xiaomi", #设备名称 可以随便写 没有特殊限制
    "appPackage":"", #包名 根据命令获取
    "appActivity":"", #入口启动项目页面
    "noReset":True
}

# 这边看视频版本有些老了 就网上找到其他博主的代码复制了过来
option = AppiumOptions()
option.set_capability("platformName", "Android")
option.set_capability("platformVersion", "5.1.1")
option.set_capability("deviceName", "xiaomi")
option.set_capability("noReset", True)
option.set_capability("appPackage", "com.tencent.qqlite")
option.set_capability("appActivity", "com.tencent.mobileqq.activity.SplashActivity")

# 这边对应端口就看你安装appium对应的端口换掉就可以了
driver = webdriver.Remote('http://localhost:4723/wd/hub', options=option)

# 通过resourceid属性定位
element_input = driver.find_element(AppiumBy.ID, "xxxxx")
# 输入
element_input.send_keys("xxxxxx")
# 单个定位
driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("相机")')
# 组合定位
element_btn = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("相机").resourceId("xxxx")')
# 点击事件
element_btn.click()

六、滑动

在这里插入图片描述

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张航柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值