京公网安备 11010802034615号
经营许可证编号:京B2-20210330
来源:AirPython
作者:星安果
大家好,我是安果!
一提到自动化,可能大家想到的是 App 端的 Appium、Airtest、AutoJS,亦或是 Selenium、Puppeteer、Cypress 等 Web 端的自动化框架
本篇文章,我将和大家聊聊 PC 端的自动化工具 - WinAppDriver
WinAppDriver,全称为 Windows Application Driver,它是 Windows 上一个类似 Selenium 的 UI 自动化驱动服务框架
它支持 Appium,可以使用 Appium-Python-Client 依赖库完成对 Windows 桌面程序的自动化操作
项目地址:
需要注意的是,要使用 WinAppDriver 服务框架完成 Windows 的自动化,需要满足 Windows10 或 Windows Server 2016 以上系统
另外,它支持的应用程序包含:
在实现之前,我们需要做好以下准备工作
2-1 开启「 开发者模式 」
关键字搜索「 开发者设置 」,选择开启「 开发者模式 」
2-2 安装窗口组件元素识别工具
常用的 2 种窗口元素识别工具为:inspect.exe、FlaUInspect
其中
作为官方的组件元素识别工具,inspect.exe 集成于 Windows SDK
如果本地不存在该文件,可以通过下面链接进行安装
https://download.microsoft.com/download/4/d/2/4d2b7011-606a-467e-99b4-99550bf24ffc/windowssdk/winsdksetup.exe
相比 inspect.exe,FlaUInspect 界面更简洁,功能更易用( 推荐 )
项目地址:
2-3 安装 WinAppDriver
通过下面链接下载 WinAppDriver 应用程序,并在本地运行起来
https://github.com/Microsoft/WinAppDriver/releases
2-4 搭建 Appium 环境
这部分内容涉及 NodeJS 安装及 Appium-Server 环境的搭建
可以参考:
2-5 安装依赖
最后安装 Python 依赖库 Appium-Python-Client
# 安装依赖 Appium-Python-Client
我们以操作 PC 端的微信为例,聊聊自动化的常见步骤
首先,我们在本机打开 WinAppDriver 服务,让它在后台运行
然后,我们使用 Python 编写自动化脚本
通过 ip 地址、端口号及 PC 版微信的绝对路径,使用 Appium 打开微信
import time, os
接着,通过「 组件元素识别工具 」拿到界面元素的属性值,执行常见的点击、移动、滑动等操作
比如:点击「 文件传输助手 」,发送一条信息
# 给文件传输助手发送一条信息
需要注意的是,如果涉及界面的滑动,可以使用「 ActionChains 」移动鼠标,然后使用 win32api 和 win32con 模拟屏幕滑动即可
import win32api
完成自动化操作后,就可以主动释放资源、关闭 WinAppDriver 服务
# 释放资源及关闭服务
在实际使用过程中,可能会遇到复杂的桌面应用程序,这时我们可以通过打印驱动对象的「 page_source」元素控制树值,以此来帮助我们进行快速定位元素,进而完善自动化脚本
1. 前言
2. 准备
https://github.com/Microsoft/WinAppDriver
https://github.com/FlaUI/FlaUInspect
https://www.cnblogs.com/amoyshmily/p/10500687.html
pip3 install Appium-Python-Client
3. 实战一下
from appium import webdriver
from selenium.webdriver import ActionChains
from
selenium.webdriver.common.keys import Keys
from time import sleep
class Auto():
def open_weixin(self, host='localhost', port=4723):
# 打开WinAppDriver服务
# 注意:如果手动开启,则可以注释掉
# os.system(r'start "" /d "C:Program FilesWindows Application Driver" "WinAppDriver.exe"')
# 配置信息
# 包含:平台名、系统、应用程序绝对路径
desired_caps = {'platformName': 'Windows', 'deviceName': 'WindowsPC',
'app': r"D:Program Files (x86)TencentWeChatWeChat.exe"}
try:
# 连接WinAppDriver服务,打开目标软件
self.driver = webdriver.Remote('http://{}:{}'.format(host, port), desired_caps)
except Exception as e:
raise AssertionError(e)
def send_msg(self, element_name, msg):
"""
:param element_name:元素name值
:param msg:
:return:
"""
# 通过name属性,找到目标元素
chat_element =
self.weixin_driver.find_element_by_name(target_name)
# 点击元素,进入聊天界面
chat_element.click()
# 找到输入框,并输入
self.weixin_driver.find_element_by_name("输入").send_keys(msg)
# 点击右下角的发送,发送消息出去
self.weixin_driver.find_element_by_name("发送(S)").click()
import win32con
from appium import webdriver
from selenium.webdriver import ActionChains
# 模拟屏幕滑动
# 1、移动到某个元素区域
ActionChains(self.weixin_driver).move_to_element(
self.weixin_driver.find_element_by_name("element_name")).perform()
# 2、滑动界面
# 比如,向上滚动,模拟滑动
win32api.mouse_event(
win32con.MOUSEEVENTF_WHEEL, 0, 0, -500)
def tearDownFunc(self):
print("准备退出")
sleep(2)
# 1、释放资源
self.weixin_driver.quit()
# 2、关闭WinAppDriver应用程序
os.system(' @taskkill /f /im WinAppDriver.exe')
4. 最后
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在业务数据分析中,按天拆分统计夜间时段的数据是高频需求——比如电商夜间订单监测、平台夜间用户活跃度分析、运维系统夜间异常 ...
2026-07-29在机器学习建模与特征工程实践中,判断不同特征对模型预测效果的贡献度,是特征筛选、模型解释、业务归因的核心环节。特征置换重 ...
2026-07-29 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-07-29【核心关键词】岗位、数字化、经验、课程、方法论、决策、企业、大方向、数据分析、销售管理、理论知识、思维方式、分析销售、 ...
2026-07-28在问卷调研、用户分群、效果对比等业务数据分析中,分类变量的关联性与差异性验证是高频需求。卡方检验作为针对离散分类数据的经 ...
2026-07-28 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-07-28在Excel数据分析与报表制作中,数据透视表是快速完成多维度汇总、分组统计的核心工具。很多从业者在得到透视表汇总结果后,为了 ...
2026-07-27 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-07-27当下,我们已然步入数据要素价值全面释放的智能时代。数据不再只是零散的数字记录,更是驱动新质生产力运转的核心动能、滋养人工 ...
2026-07-27【核心关键词】客户、数据分析、指标体系、数据采集、数据指标、业务数据、分析思路、业务需求、分析方法 【专访摘要】本次 CDA ...
2026-07-24在数据分析、业务建模与数字化运营体系中,原始业务数据普遍存在缺失、重复、异常、口径不一致等质量问题,直接用于分析与建模会 ...
2026-07-24 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-07-24在数据驱动的精细化运营体系中,指标是业务判断、效果复盘、策略优化的核心依据。随着企业数据化程度提升,指标数量持续膨胀,但 ...
2026-07-23在用户运营与产品增长体系中,留存是衡量产品真实价值与用户粘性的核心标尺,也是决定用户生命周期价值、获客投产比的底层因素。 ...
2026-07-23 很多数据分析师精通Excel、SQL、Python等工具,但当被问到“面对一个具体的业务问题,该用什么分析方法”“描述性分析和诊断 ...
2026-07-23【核心关键词】埋点、产品、互联网、数据库、决策、数据分析、产品经理、商业模式、移动互联网、指标体系、运营模块、大数据平 ...
2026-07-22在高并发、大数据量的业务系统中,单表数据量达到千万级甚至亿级后,会出现查询性能骤降、索引维护成本飙升、存储扩容困难等问题 ...
2026-07-22 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-07-22在金融风控、企业运营、行业研究等数据分析场景中,大量数据以面板数据形态存在:例如多家分支机构连续多个季度的风险指标、多位 ...
2026-07-21 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-07-21