python自动化操作安卓app

发布时间:2024年01月22日

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

一、准备工作

安装链接

出现了手机版本过高

解决方案

课程地址:链接

二、开始

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

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

2、安装pip包

pip install appium-python-client

3、abd基本命令

# 链接服务器 
abd connect 127.0.0.1:62001
# 查看链接哪台服务器
abd 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自带的定位工具

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、定位元素

在这里插入图片描述

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

4.3weditor定位工具

1、安装

uiautomator2其实是python使用sdk写的第三方库,对appUi自动化测试框架

执行命令

  1. 命令1
pip install Uiautomator2
  1. 命令2推送一个包到模拟器上
python -m uiautomator2 init
  1. 命令3
pip install weditor
  1. 命令4确认安装
weditor --help

2、使用

要确定你的终端模拟器是连接的
在这里插入图片描述

# 打开
weditor

现在通过网页打开这个页面

在这里插入图片描述
绿色的小树苗就是连接成功的表示

旁边按钮是刷新页面

点击对应元素即可看到对应元素的信息
在这里插入图片描述

五、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()

六、滑动

在这里插入图片描述

七、测试框架学习

链接

文章来源:https://blog.csdn.net/weixin_49390750/article/details/135605454
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。