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

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.hqwc.cn/news/7275.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发者活动:云原生的开源 AI 大模型基础设施

随着 ChatGPT 的火热,大语言模型和相关应用不断涌现。你是否了解大语言模型的技术细节?你是否曾经开发过大语言模型应用?如果你对大语言模型背后的基础设施感兴趣,那么7月8号,北京海淀中关村创业大街,云原生…

Jmeter接口测试参数化详解

目录 前言: RandomString函数 CSVRead函数 CSV Data Set Config配置元件 前言: 在进行接口测试时,参数化是一项重要的技术,可以帮助测试人员有效地模拟不同的场景和数据,增加测试用例的覆盖范围。JMeter提供了多种…

十七、docker学习-docker-compose安装nginx反向代理

compose安装nginx反向代理 IDEA安装docker插件 idea安装docker插件。Dockerfile、docker-compose.yml文件大部分内容会有提示信息。方便开发人员编写配置文件。 https://plugins.jetbrains.com/plugin/7724-docker/versions基础镜像 docker pull 1.21.0-alpine docker pull…

1.1、Java初级认识Java、jdk、 idea

前言 1.1 软件开发之 Java 开发 Java现在已经占有主流市场 企业级应用领域(JavaEE 后台):用来开发企业级的应用程序,大型网站如淘宝、京 东、12306,以及各大物流、银行、金融、社交、医疗、交通、各种 OA 系统等都…

Proxyman 替换js

在真机排查问题时,js不能格式化,导致没法看问题出在那一行,此时可以用这个方法替换js。 方法: 安装proxyman后,以iOS设备为例,菜单-证书-在iOS上安装证书 电脑、真机连接同一个网络,配置代理&…

1. MyBatis 整体架构

作为正式内容的第一篇,本次不会介绍具体的技术,而是先从全局视角上对 MyBatis 做一个俯瞰,了解 MyBatis 项目工程的组织结构,以及内部的核心功能模块。 工程结构 打开 MyBatis 的 Github 地址,就可以看到其代码工程结…

通过Appium Desktop实现录制功能并导出自动化脚本

1、我们进入下面这个界面 图中红色标记1为 “top by coordinates” 按钮, 这是一种通过坐标定位元素的方式。 图中红色标记2为 “Start Recording” 按钮, 选中表示处理录制状态。 2、点击“top by coordinates” 按钮,再点击 “Start Recor…

论文阅读 (94):Substructure Aware Graph Neural Networks (SAGNN, AAAI2023)

文章目录 1 要点1.1 概述1.2 一些概念1.3 代码1.4 引用 2 基础知识2.1 符号2.2 信息传递神经网络 (MPNN) 3 方法3.1 子图提取3.1.1 基于节点的策略3.1.2 基于图的策略 3.2 随机游走返回概率编码3.3 子图信息注入的信息传递 1 要点 1.1 概述 题目:子结构感知图神经…

【随笔】jupyter notebook启动打开文件出现:500 : Internal Server Error

错误: 看log有 module ‘mistune’ has no attribute BlockGrammar’错误 打开文件有500 : Internal Server Error 解决方法: pip install --upgrade jupyterhub pip install --upgrade --user nbconvertconda环境可以: conda install nbc…

linux基础命令总结

目录标题 目录操作1.绝对路径和相对路径2.目录的基本操作3.chomd、chown、chgrp4.cd命令 文件操作1.touch2.more4.cat5.grep6.rm7.cp8.mv9.find 磁盘操作1.df2.du date、passwd1.date2.passwd su、clear、man、who1.su2.man3.clear4.who unameuptimefreepsps与grep、kill1.与gr…

【LeetCode】HOT 100(20)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…