Appium: Windows系统桌面应用自动化测试(一)

news2024/12/22 3:51:32

Appium: Windows系统桌面应用自动化测试

  • 一、方案调研
  • 二、环境搭建
    • 1、WinAppDriver环境搭建
      • (1)开启开发者选项中的“开发人员模式”
      • (2)windows sdk下载安装
      • (3)WinAppDriver下载安装
    • 2、appium环境搭建
      • (1)appium的官方文档
      • (2)根据官方文档,采用Appium的桌面方式进行安装,而且是一键安装
      • (3)打开如图界面则安装成功
    • 3、使用Appium连接WinAppDriver
      • (1)操作步骤
      • (2)json配置,参数如下
      • (3)Appium桌面版提供的功能
    • 三、简单使用
      • 1、查找元素
        • (1)windows sdk安装路径中,有一个查找元素的组件,叫 inspect.exe,可通过搜索找到,并双击运行。打开如图界面,可以查看元素的名称,和元素支持的点击等操作。
        • (2)inspect.exe查找到的元素的键值对,与python语言使用方法的对应关系,如下表:
      • 2、编写脚本
        • (1)打开pycharm创建虚拟环境,并打开虚拟环境的cmd对话窗口,安装如下:
        • (2)编写脚本,实现连接,代码如下

一、方案调研

1、windows桌面应用自动化测试方案
(1)WinAppDriver是微软开发的自动化测试工具,而windows是微软开发的,兼容性应该极好。

(2)WinAppDriver也可以是appium的一个自动化框架,而Appium 支持python语言。

(3)Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。它把这些系统本身提供的框架包装进一套 API —— WebDriver API 中。WebDriver,即Selenium WebDriver。

(4)Pytest是自动化测试工具,基于Unittest的封装,没那么灵活,但插件丰富。

基于这些原因,windows桌面应用的自动化测试方案采用Python+Appium+WinAppDriver+Pytest

(5)当我写完“Appium: Windows系统桌面应用自动化测试(二)”的时候,我决定弃用上述方案,当然,对于想要坚持的同志,本文依然是入门win桌面应用UI自动化的最佳选择!

二、环境搭建

1、WinAppDriver环境搭建

(1)开启开发者选项中的“开发人员模式”

在这里插入图片描述

(2)windows sdk下载安装

①下载地址:

https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/
在这里插入图片描述
②选择路径安装即可
在这里插入图片描述

(3)WinAppDriver下载安装

①点击下载链接,并任选一个版本,打开如下图,接着根据需求选择合适自己的安装包下载即可

下载地址:https://github.com/microsoft/WinAppDriver/releases
在这里插入图片描述
②一键安装
在这里插入图片描述
③搜索一下安装路径

如图,默认路径为:C:\Program Files\Windows Application Driver

在这里插入图片描述
④双击打开出现以下画面则安装成功
在这里插入图片描述

2、appium环境搭建

(1)appium的官方文档

http://appium.io/docs/cn/about-appium/intro/

(2)根据官方文档,采用Appium的桌面方式进行安装,而且是一键安装

下载地址:https://github.com/appium/appium-desktop/releases
在这里插入图片描述
在这里插入图片描述

(3)打开如图界面则安装成功

在这里插入图片描述

3、使用Appium连接WinAppDriver

(1)操作步骤

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

在这里插入图片描述

(2)json配置,参数如下

{
        "app": "C:\\Program Files\\XMind\\XMind.exe",
        "deviceName": "WindowsPC",
        "platformName": "Windows"
}

(3)Appium桌面版提供的功能

①可作为客户端或服务器使用

②提供元素查找功能

③提供脚本录制功能

④其他

三、简单使用

1、查找元素

(1)windows sdk安装路径中,有一个查找元素的组件,叫 inspect.exe,可通过搜索找到,并双击运行。打开如图界面,可以查看元素的名称,和元素支持的点击等操作。

在这里插入图片描述

(2)inspect.exe查找到的元素的键值对,与python语言使用方法的对应关系,如下表:

inspect.exe查找到的键值对python查找元素的方法
AutomationIddriver.find_element_by_accessibility_id()
ClassNamedriver.find_element_by_class_name()
RuntimeId (decimal)driver.find_element_by_id()
Namedriver.find_element_by_name()
LocalizedControlType (upper camel case)driver.find_element_by_tag_name()
Anydriver.find_element_by_xpath()

2、编写脚本

前面,我们已经使用Appium作为客户端成功连接了服务端WinAppDriver;现在,我们通过python脚本连接WinAppDriver。

(1)打开pycharm创建虚拟环境,并打开虚拟环境的cmd对话窗口,安装如下:

pip install Appium-Python-Client Selenium
在这里插入图片描述

(2)编写脚本,实现连接,代码如下

 from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait


# appium服务监听地址(WinAppDriver地址)
server='http://127.0.0.1:4723'
# app启动参数
desired_caps={
       "app": "C:\\Program Files\\XMind\\XMind.exe",
       "deviceName": "WindowsPC",
       "platformName": "Windows"
}
# 连接
driver = webdriver.Remote(server, desired_caps)
wait = WebDriverWait(driver, 30)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2018年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,考取过HCIE Cloud Computing、CCIE Security、CISP等证书。🐳 💕兴趣爱好:b站天天刷,题目常常看&a…

第十二章 原理篇:vision transformer

参考教程: https://arxiv.org/pdf/2010.11929.pdf https://zhuanlan.zhihu.com/p/340149804 【大佬总结的非常好,他的好多篇文章都很值得学习】 文章目录 为什么会使用transformerVIT详解method获得patchpatch embeddingposition embedding 代码实现eino…

数据结构--队列的顺序实现

数据结构–队列的顺序实现 队列的顺序存储代码定义 #define MaxSize 10 //定义队列中元素最大个数 typedef struct {ElemType data[MaxSize]; //静态数组存放队列元素int front, rear; //对头指针 & 队尾指针 } SqQueue; 初始化操作 void InitQueue(SqQueue &Q) {Q.r…

第九十三天学习记录:C++核心:类和对象Ⅱ(五星重要)

对象的初始化和清理 构造函数和析构函数 对象的初始化和清理也是两个非常重要的安全问题 一个对象或者变量没有初始化状态,对其使用后果是未知 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题 c利用了构造函数和析构函数…

搜索封装+crud+重点细节优化

新建GSearchQuery.vue <template> <el-row :span"24><el-input type"text" v-model"query"></el-input><slot></slot> </el-row> </template>data() {return{query: }}index.vue 引入组件 <GSe…

每周学点数学 1:数学建模计划篇

用GPT3.5生成了一段数学建模学习的计划&#xff0c;我准备在视觉学习的同时&#xff0c;穿插一些数学理论方面的学习&#xff0c;以下是近三个月的计划。 7月2日-7月8日&#xff1a;了解数学建模的基本概念和方法&#xff0c;阅读相关教材和论文&#xff0c;了解数学建模的应…

【如何用大语言模型快速深度学习系列】开篇+文本匹配系列

开篇 很久没有更新啦&#xff01;这个系列其实是自己的一个学习笔记啦&#xff01;这个系列的特色就是我们不再通过看视频的方式入门深度学习。 开篇的时候&#xff08;2023.07.01&#xff09;&#xff0c;我想的是围绕自然语言处理的一些基础方法&#xff08;代码方面&#…

带你用Python制作一个经典小游戏:扫雷

名字&#xff1a;阿玥的小东东 学习&#xff1a;Python、C/C 主页链接&#xff1a;阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 游戏界面尺寸 方块尺寸 雷的数量 游戏状态 最后&#xff0c;我们定义一个函数run()&#xff…

软件项目成本的计算

在《架构思维的六要素》中&#xff0c;列出的第一个要素就是成本&#xff0c;成本对项目设计和决策起着至关重要的作用。今天咱们就来看看直接成本、间接成本和总成本的关系。 直接成本 工作于服务的开发者工作于系统测试的测试者设计数据库的DBA设计界面和致力于优化用户体验的…

ROS学习篇之远程控制(七)-局域网内的控制

文章目录 一.pc与pc端二.手机与pc端&#xff08;1&#xff09;pc端&#xff1a;**步骤1&#xff1a;** 运行 roscore**步骤2&#xff1a;** 新开一个终端运行&#xff0c;运行 rosrun turtlesim turtlesim_node **步骤3&#xff1a;** 新建一个终端查看ip&#xff0c;运行ifcon…

基于matlab根据特征进行全景图像拼接(附源码)

一、前言 此示例演示如何使用基于特征的图像配准技术自动创建全景图。 特征检测和匹配是许多计算机视觉应用&#xff08;如图像配准、跟踪和对象检测&#xff09;中使用的强大技术。在此示例中&#xff0c;基于特征的技术用于自动拼接一组图像。图像拼接过程是基于特征的图像…

火车头采集:高效数据采集工具的介绍

火车头采集是一款基于Python语言开发的网络爬虫工具&#xff0c;用于快速高效地从互联网上采集数据并存储到本地或远程数据库。它简单易用且功能强大&#xff0c;在各行各业广泛应用。 1、设置chatgpt自定义key 添加网站 通过关键词批量生成原创文章 设置发布网站 发布成功 相…

Python GUI编程利器:Tkinker中的文本输入框和下拉菜单(4)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 和猫妹学Python&#xff0c;一起趣味学编程。 今日目标 实现下面效果&#xff1a; 文本输入框(Entry类) 文本输入框&#xff0c;顾名思义&#xff0c;就是实现文本输入功能…

dnsServer搭建

一、dokcer安装 #下载文件&#xff1a;https://github.com/TechnitiumSoftware/DnsServer/blob/master/docker-compose.yml #另存到/root/docker-compose.yml cd /root docker-compose -f docker-compose.yml up -d #启动成功后&#xff0c;浏览器输入&#xff1a;http://192…

Airtest:Windows桌面应用自动化测试【AirtestIDE功能】

AirtestIDE功能 基础功能一、设备窗二、Airtest辅助窗三、Poco辅助窗3.1UI树常见问题&#xff1a;3.1.1为什么我选择了Poco模式后&#xff0c;没有成功刷出UI树3.1.2为什么接入了SDK、使用了原生App依然看不到UI树3.1.3UI树在一段时间后没有正确刷新 四、脚本编辑窗五、Log查看…

蓝牙HID与Android的通信--多点触摸问题

通过蓝牙HID上传鼠标&#xff0c;键盘&#xff0c;按键的事件基本已经比较成熟。并且功能比较好实现&#xff0c;基本参照网络上的配置都可以弄出来。但多点触摸功能却怎么弄都没有满意的结果。搜罗了网上的很多报告描述符的描写&#xff0c;试验了一段时间&#xff0c;竟然没有…

OpenCV:深入Feature2D组件——角点检测

角点检测 1 Harris角点检测1.1 兴趣点与角点1.2 角点检测1.3 harris角点检测1.4 实现harris角点检测&#xff1a;cornerHarris()函数1.5 综合案例&#xff1a;harris角点检测与测绘 2. Shi—Tomasi角点检测2.1Shi—Tomasi角点检测概述2.2 确定图像强角点&#xff1a;goodFeatur…

硬件基本常识杂记1

文章目录 电感&#xff08;RL电路&#xff09;&#xff0c;电容&#xff08;RC电路&#xff09;&#xff0c;(LRC电路)谐振&#xff08;串联、并联&#xff09;滤波器&#xff08;高通RC、低通RC、高通RL、低通RL、带通、Π型&#xff09;积分电路、微分电路截至频率w信号传输、…

Docker迁移与备份

容器保存为镜像 语法: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 为nginx创建镜像: docker commit -a "leq" -m "nginx的镜像" 10053cd47ebf nginx:v1.0 -a 提交的镜像作者 -m 提交时的说明文字 镜像备份 语法: docker save…

深入理解C语言对文件的包装与缓冲区

内存级文件操作的运用 1.模拟实现文件分装2. 深入理解缓冲区的概念 1.模拟实现文件分装 【目标】 以最简单的方式&#xff0c;理解FILE结构体的原理。 头文件&#xff1a;mystdio.h&#xff08;定义了MY_FILE结构体&#xff0c;声明fopen&#xff0c;fwrite&#xff0c;fclos…