
來源: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
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25