当前位置: 首页 > article >正文

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 AppiumOptionsdesired_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 AppiumBydesired_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()

六、滑动

在这里插入图片描述

http://www.lryc.cn/news/2415691.html

相关文章:

  • 【花雕学编程】Arduino动手做(223)---42步进电机二相四线+A4988驱动模块+扩展板7
  • MSN Space 使用高级技巧
  • java的part方法,《JAVA:从入门到精通》part 19
  • 工业RFID读写器的作用有哪些?
  • C语言和Java哪个难学?
  • Inter(R) Wireless -AC 9560网卡43掉线解决方法记录
  • node.js+vue计算机毕业设计湖南旅游网站(附源码+程序+mysql+Express)
  • 计算器代码java_计算器 java源代码
  • 搜索引擎优化和高级使用技巧指南
  • 高考数据可视化:高考大省河南省参加人数高达125万,全国第一
  • 简单c语言入门
  • 信息学奥赛一本通·编程启蒙 C++版 3011-3020(10题)
  • 快速搭建24小时不间断直播间的完整代码包及搭建教程
  • 第二讲:网线的制作方法及步骤
  • 如何用ASP代码实现虚拟主机
  • 如何购买公网IP?
  • web页面上联系QQ客服功能实现——一行代码搞定
  • Java大数据处理:如何使用Java技术实现高效的大数据处理
  • 基于PHP后台微信医院预约挂号小程序系统设计与实现(安装部署+源码+文档)
  • 局域网内建网站教程,如何零成本搭建自己的网站?
  • 半带滤波器
  • Android记录25-WebView实现离线缓存阅读
  • 新浪短地址API
  • 5.架构师 如何架构选型一个项目
  • python初学者超简单的会员信息登录系统,增删查改功能
  • 在Linux机器上部署项目的步骤及其细节
  • java入门教程
  • 大数据平台,Hadoop集群架构,概述及原理
  • 使用计算机教室的注意事项,学生计算机房(电脑室)使用须知
  • 微服务和分布式的概念和区别