Appium中的api(一)
目录
1.基础python代码准备
1--参数的一些说明
2--python内所要编写的代码
解释
2.如何获取包名和界面名
1-api
2-完整代码
代码解释
3.如何关闭驱动连接
4.安装卸载app
1--卸载
2--安装
5.判断app是否安装
6.将应用放到后台在切换为前台的时间
7.UIAutomatorViewer的使用
1--找到uiautomatorviewer.bat
2--获取信息
3--一些说明
1.基础python代码准备
1--参数的一些说明
platformName='Android', # 名字,这个这就是这个
automationName='uiautomator2', # 这个是使用的驱动
deviceName='Android', # 这个是设备名字可以随意
appPackage='com.android.settings', # 这个是你要启动的包名
appActivity='.Settings', # 这个是你要启动的活动单元名字
language='en',
locale='US',
udid="127.0.0.1:21503" # 这个是要连接的设备的ip和端口号 我用的是逍遥模拟器 端口号为 21503
2--python内所要编写的代码
import time import unittest from appium import webdriver from appium.options.android import UiAutomator2Options from appium.webdriver.common.appiumby import AppiumBycapabilities = dict(platformName='Android', # 名字,这个这就是这个automationName='uiautomator2', # 这个是使用的驱动deviceName='Android', # 这个是设备名字可以随意appPackage='com.android.settings', # 这个是你要启动的包名appActivity='.Settings', # 这个是你要启动的活动单元名字language='en',locale='US',udid="127.0.0.1:21503" # 这个是要连接的设备的ip和端口号 我用的是逍遥模拟器 端口号为 21503 )appium_server_url = 'http://localhost:4723'class MyElementUiTest(unittest.TestCase):# 前置处理def setUp(self) -> None:self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))# 后置处理 关闭连接会话sessiondef tearDown(self) -> None:self.driver.quit()# testdef test_find(self):time.sleep(2)
解释
这里有个测试类叫 MyElementUiTest,它继承了 unittest.TestCase。这意味着你可以用 Python 的单元测试框架来组织测试代码。
在 setUp 方法里,我们告诉 Appium 怎么启动一个应用。这里用到了一个叫 capabilities 的字典,里面包含了启动应用需要的信息,比如说是 Android 系统,用的是 UiAutomator2 驱动,要测试的是系统设置应用 (com.android.settings),以及一些其他的配置信息。
tearDown 方法是在每次测试之后运行的,主要是用来清理环境,比如关掉之前打开的应用。
test_find 方法是个具体的测试用例。目前这个方法里只有一个 time.sleep(2),作用是让脚本暂停两秒钟。这通常是为了给应用一点时间去加载或者是为了避免太快的操作导致的问题。但是最好还是用更精确的方法去等待元素出现,而不是硬编码地等待固定时间。
2.如何获取包名和界面名
1-api
# 获取当前界面的包名和界面名
print("当前界面信息")
print(self.driver.current_activity)
# 获取当前界面的包名
print(self.driver.current_package)
2-完整代码
import time import unittest from appium import webdriver from appium.options.android import UiAutomator2Options from appium.webdriver.common.appiumby import AppiumBycapabilities = dict(platformName='Android', # 名字,这个这就是这个automationName='uiautomator2', # 这个是使用的驱动deviceName='Android', # 这个是设备名字可以随意appPackage='com.android.settings', # 这个是你要启动的包名appActivity='.Settings', # 这个是你要启动的活动单元名字language='en',locale='US',udid="127.0.0.1:21503" # 这个是要连接的设备的ip和端口号 我用的是逍遥模拟器 端口号为 21503 )appium_server_url = 'http://localhost:4723'class MyElementUiTest(unittest.TestCase):# 前置处理def setUp(self) -> None:self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))# 后置处理 关闭连接会话sessiondef tearDown(self) -> None:self.driver.quit()# testdef test_find(self):# 获取当前界面的信息myPackageInfo = self.driver.current_package;print(myPackageInfo)# 获取当前页面的包名myActivityInfo = self.driver.current_activityprint(myActivityInfo)time.sleep(2)
代码解释
-
capabilities字典中包含了启动一个Android应用所需的配置信息,如平台名称(platformName)、自动化框架(automationName)、设备名称(deviceName)、应用程序包名(appPackage)、应用程序启动Activity(appActivity)等。 -
appium_server_url是运行Appium服务器的URL地址。 -
在
setUp方法中,使用webdriver.Remote函数来启动一个与Appium服务器的新会话,并通过提供的能力和选项来配置它。 -
tearDown方法在每个测试用例执行完毕后调用,用来关闭与Appium服务器的会话。 -
test_find方法中,首先打印了当前界面的应用程序包名(current_package),然后打印了当前活动的名称(current_activity)。最后,为了让测试更加稳定,增加了一个两秒的延时(time.sleep(2))。
3.如何关闭驱动连接
driver.quit()关闭的是当前连接
4.安装卸载app
1--卸载
self.driver.remove_app("要移除app的包名")
2--安装
self.driver.install_app("要安装的app路径名")
5.判断app是否安装
self.driver.is_app_installed("要判断的app包名")
6.将应用放到后台在切换为前台的时间
self.driver.background_app(5)
7.UIAutomatorViewer的使用
1--找到uiautomatorviewer.bat
找到android的SDK目录下的tools ===》bin ===》uiautomatorviewer.bat

2--获取信息

3--一些说明

相关文章:
Appium中的api(一)
目录 1.基础python代码准备 1--参数的一些说明 2--python内所要编写的代码 解释 2.如何获取包名和界面名 1-api 2-完整代码 代码解释 3.如何关闭驱动连接 4.安装卸载app 1--卸载 2--安装 5.判断app是否安装 6.将应用放到后台在切换为前台的时间 7.UIAutomatorViewer的使用 1--找…...
【AI辅助设计】没错!训练FLUX LoRA就这么简单!
前言 得益于开源社区的力量,在各位大佬的努力下,现在16G VRAM的家用电脑也可以训练FLUX的LoRA了 👏。 今天我使用fluxgym这个方法,训练LoRA,并记录过程。 篇幅有限,这里就不一一展示了,有需要的…...
Mac 下安装FastDFS
首先我们需要下载相对应的安装包: libfastcommonFastDFS 下载完成后我们先将其解压到桌面。 1.安装libfastcommon 我们进入到libfastcommon-master目录中执行./make.sh和sudo ./make.sh install,具体代码如下: 2.安装FastDFS 同安装libfa…...
人工智能的未来:重塑生活与工作的变革者
随着人工智能(AI)技术的快速发展,我们正处于一个前所未有的变革时代。AI不仅在医疗、企业运营和日常生活中发挥着重要作用,而且正在重新定义我们的生活和工作方式。本文将探讨人工智能技术的应用前景以及它如何改变我们的生活和工…...
【微服务】Java 对接飞书多维表格使用详解
目录 一、前言 二、前置操作 2.1 开通企业飞书账户 2.2 确保账户具备多维表操作权限 2.3 创建一张测试用的多维表 2.4 获取飞书开放平台文档 2.5 获取Java SDK 三、应用App相关操作 3.1 创建应用过程 3.2 应用发布过程 3.3 应用添加操作权限 四、多维表应用授权操作…...
学习threejs,使用粒子实现下雪特效
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.Points简介1.11 ☘️…...
unity3d——Time
在Unity3D中,Time类是一个非常重要的工具类,它提供了一系列与时间相关的属性和方法,帮助开发者在游戏中实现各种时间相关的操作。以下是一些Time类常用的方法及其示例: 一、常用属性 Time.time 含义:表示从游戏开始到…...
天地图实现海量聚合marker--uniapp后端详细实现
本文章详细的讲解了前后端代码来 实现uniapp天地图功能的实现 以及 后端海量数据的聚合查询 和网格算法实现思路。 并对当数据量增加和用户频繁请求接口时可能导致服务器负载过高做了前后端优化。 前端uniapp: 实现了天地图的行政区划边界/地图切换/比例尺/海量数…...
Bug | 项目中数据库查询问题
问题描述 理论上,点击查询后,表头应当显示中文。而不是上面的在数据库中的表头【如上图示】 正常点击查询后,如果没有输入值,应当是查询所有的信息。 原因分析: 这里是直接使用SELECT * 导致的。例如: S…...
C++入门基础知识129—【关于C 库函数 - time()】
成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C 库函数 - time()的相关内容࿰…...
大文件秒传,分片上传,断点续传
大文件分片上传 一 功能描述 1.文件通过web端分片多线程上传到服务端,然后web端发起分片合并,完成大文件分片上传功能 2.上传过的大文件,实现秒传 3.上传过程中,服务异常退出,实现断点续传 二 流程图 三 代码运行…...
多生境扩增子探秘:深度溯源与多样性解析
分析微生物组数据的组成结构的一个主要挑战是确定其潜在来源。在微生物来源分析中,随机森林、SourceTracker和FEAST都有较广泛应用。今天,小编就带大家看一篇发表在《iMeta》的文章,使用溯源技术追踪微生物的来源与去向,揭示生物在…...
Selenium4自动化测试常用函数总结,各种场景操作实战
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 seleninum作为自动化测试的工具,自然是提供了很多自动化操作的函数,下面列举下比较常用的函数,更多可见官方文档:…...
图像生成新范式:智源推出全能视觉生成模型 OmniGen
大型语言模型(LLM)的出现统一了语言生成任务,并彻底改变了人机交互。然而,在图像生成领域,能够在单一框架内处理各种任务的统一模型在很大程度上仍未得到探索。近日,智源推出了新的扩散模型架构 OmniGen&am…...
实现RPC接口的demo记录
1.Thrift RPC 接口实现 Demo Service public class DemoServiceImpl implements DemoService.Iface {private static final Logger logger LoggerFactory.getLogger(DemoServiceImpl.class);Overridepublic String sayHello(Context context, String msg) throws TException …...
Python期末题目 | 期末练习题【概念题+代码】
一、前言 Python 是一门功能强大且易于学习的编程语言,在高校中被广泛用作教学语言。Python 的期末考试通常会包含基础知识和编程实践,以考察学生的理解与应用能力。本文整理了一套 Python 期末练习题,包括选择题、填空题、判断题和代码题。…...
OpenCV基本操作(python开发)——(6)视频基本处理
OpenCV——视频基本处理 一、读取摄像头 import numpy as np import cv2cap cv2.VideoCapture(0) # 实例化VideoCapture对象, 0表示第一个摄像头 while cap.isOpened():ret, frame cap.read() # 捕获帧cv2.imshow("frame", frame)c cv2.waitKey(1) # 等待1毫…...
详解Java之Spring MVC篇一
目录 Spring MVC 官方介绍 MVC RequestMapping 传递参数 无参数 单个参数 针对String类型 针对Integer类型 针对int类型 针对自定义类型 多个参数 参数重命名 参数强制一致 参数不强制一致 传递数组 编辑传递List 编辑 传递JSON 编辑 从路径中获取参…...
ubuntu20.04上使用 Verdaccio 搭建 npm 私有仓库
安装nvm 首先安装必要的工具: apt update apt install curl下载并执行nvm安装脚本: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash添加环境变量(如果安装脚本没有自动添加)。编辑 ~/.bash…...
Python实现办公自动化的数据可视化与报表生成
在 Python 中,可以利用多个库来实现办公自动化中的数据可视化与报表生成。以下是具体的方法: 一、数据可视化 使用 matplotlib 库 matplotlib 是一个强大的 Python 绘图库,可以创建各种类型的静态、动态和交互式图表。示例代码:i…...
QMCDecode终极指南:3步破解QQ音乐加密格式,实现音频自由播放
QMCDecode终极指南:3步破解QQ音乐加密格式,实现音频自由播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录…...
YOLOv8模型训练避坑指南:GTX16系列显卡兼容性问题解决方案
GTX16系列显卡用户必读:YOLOv8模型训练全流程避坑手册 当你在GTX16系列显卡上运行YOLOv8训练脚本时,是否遇到过这样的场景:训练过程看似正常,但最终输出的P(精确率)、R(召回率)、mAP…...
【Simulink】双矢量调制MPC在并网逆变器中的实现:从理论到仿真
1. 双矢量MPC为什么更适合并网逆变器控制 我第一次接触双矢量模型预测控制(MPC)是在调试一个光伏并网项目时。当时单矢量MPC的电流纹波始终达不到设计要求,直到看到郭磊磊老师那篇经典论文才恍然大悟——原来矢量组合方式才是破局关键。相比传…...
VS Code玩转Arduino开发——插件配置与工程搭建全攻略
1. 为什么选择VS Code开发Arduino? 很多Arduino爱好者刚开始接触开发时,都会使用官方提供的Arduino IDE。这个编辑器确实简单易用,但随着项目复杂度提升,你会发现它缺少很多现代编辑器该有的功能——代码补全、语法高亮、项目管理…...
3个步骤解决老旧系统Python支持难题:Windows 7及以上系统兼容性解决方案
3个步骤解决老旧系统Python支持难题:Windows 7及以上系统兼容性解决方案 【免费下载链接】PythonVista Python 3.9 installers that support Windows 7 SP1 and Windows Server 2008 R2 项目地址: https://gitcode.com/gh_mirrors/py/PythonVista 在企业办公…...
Claude Code架构深度解析:从核心文件到Harness的确定性控制体系
前言 Claude Code凭借强大的代码理解、编辑与执行能力,成为AI研发工程师的高效工具,但多数使用者仅停留在功能调用层面,对其底层架构尤其是核心控制层Harness知之甚少。作为Claude Code架构师,本文将从项目架构视角,拆…...
高效智能抖音直播下载工具:一站式解决方案
高效智能抖音直播下载工具:一站式解决方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾经为错过精彩的抖音直播而遗憾?是否想要保存喜欢的直播内容却苦于没有合适的工具&a…...
攻克Atlas OS中Xbox应用登录错误0x89235107的完整方案
攻克Atlas OS中Xbox应用登录错误0x89235107的完整方案 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atlas …...
OpenClaw配置备份指南:Qwen3.5-9B环境快速迁移与恢复方法
OpenClaw配置备份指南:Qwen3.5-9B环境快速迁移与恢复方法 1. 为什么需要备份OpenClaw配置? 上周我的主力开发机突然硬盘故障,导致辛苦配置了两个月的OpenClaw环境全部丢失。最痛苦的不是重装软件,而是那些精心调试的模型参数、技…...
RNA-seq测序深度指南:从研究目的到数据量换算全解析
1. RNA-seq测序深度:为什么它如此重要? 做RNA-seq实验的朋友们,最常被问到的问题就是"该测多少数据量?"。这个问题看似简单,实际上直接关系到实验的成败。我见过太多人因为测序深度选择不当,导致…...

