在某些情況下,如果我們需要進(jìn)行自動(dòng)化操作的應(yīng)用沒(méi)有提供相應(yīng)的接口,我們無(wú)法直接通過(guò)Python來(lái)調(diào)用API實(shí)現(xiàn)自動(dòng)化。這種情況下,Python也不是完全沒(méi)有辦法的,我們可以采用模擬鍵盤(pán)和鼠標(biāo)的方式實(shí)現(xiàn)自動(dòng)化。
Python中模擬鍵盤(pán)和鼠標(biāo)最著名的模塊是:pymouse和 pykeyboard 。一次安裝兩個(gè)模塊比較麻煩,而有一個(gè)庫(kù)整合了這兩個(gè)模塊,而且能支持跨平臺(tái)操作,這個(gè)庫(kù)叫 PyUserInput ,通過(guò)安裝PyUserInput就可以直接得到pymouse和 pykeyboard 。
1.準(zhǔn)備
開(kāi)始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒(méi)有,請(qǐng)?jiān)L問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda
Windows環(huán)境下打開(kāi)Cmd(開(kāi)始—運(yùn)行—CMD),蘋(píng)果系統(tǒng)環(huán)境下請(qǐng)打開(kāi)Terminal(command+空格輸入Terminal),準(zhǔn)備開(kāi)始輸入命令安裝依賴(lài)。
當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來(lái),在編輯器下方的終端運(yùn)行命令安裝依賴(lài)模塊,多舒服的一件事啊:Python 編程的最好搭檔—VSCode 詳細(xì)指南。
在終端輸入以下命令安裝我們所需要的依賴(lài)模塊:
PyUserInput 在不同系統(tǒng)下的安裝需要使用不同的依賴(lài):
- Linux - Xlib (python-xlib)
- Mac - Quartz, AppKit
- Windows - pywin32, pyHook
在終端輸入以下命令安裝我們所需要的依賴(lài)模塊:
pip install PyUserInput
看到 Successfully installed xxx 則說(shuō)明安裝成功。Windows系統(tǒng)下如果出現(xiàn)如以下的紅色字體提示則需要安裝pyHook:
No matching distribution found for pyHook (from PyUserInput)
pyHook安裝比較麻煩,安裝成功或者非Windows系統(tǒng)的同學(xué)可以跳過(guò)下面的講解:
1. 安裝pyHook需要前往
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook
找到你的Python版本對(duì)應(yīng)的pyHook安裝包,如我的是Python 3.6,系統(tǒng)是64位,則選擇紅框版本

2. 輸入以下命令安裝該whl文件:
pip install pyHook-1.5.1-cp36-cp36m-win_amd64.whl
文件需要在輸入命令的當(dāng)前文件夾下。
3. 出現(xiàn)Successfully installed pyHook-1.5.1則說(shuō)明安裝成功。
如果出現(xiàn)缺少pywin32依賴(lài),或者pywin32無(wú)法正常使用,請(qǐng)前往:
https://github.com/mhammond/pywin32/releases
下載對(duì)應(yīng)版本的pywin32安裝包,這里的安裝包是exe程序,直接雙擊安裝即可。
如果安裝pywin32的時(shí)候出現(xiàn)這樣的錯(cuò)誤(借他人圖):

這是因?yàn)槟愕腜ython沒(méi)有被寫(xiě)入到注冊(cè)表,需要將注冊(cè)表寫(xiě)入Python,在Python實(shí)用寶典公眾號(hào)后臺(tái)回復(fù): 注冊(cè)表 或閱讀原文 獲得一鍵寫(xiě)入代碼,用Python運(yùn)行該代碼就能成功注冊(cè)。
注冊(cè)完畢后就可以正常安裝pywin32了,然后再重新安裝 PyUserInput 即可。macOS和Linux在安裝的時(shí)候應(yīng)該不會(huì)遇到太大問(wèn)題,如果有遇到問(wèn)題可以先搜索一下,網(wǎng)上解決方案都很全,或者在本文下方留言求解。
2.基本使用
pymouse模塊相對(duì)簡(jiǎn)單,你只需要記以下幾個(gè)函數(shù)即可滿(mǎn)足基本的使用需求,如
1.鼠標(biāo)移動(dòng):

中鍵滾動(dòng):

2.鼠標(biāo)點(diǎn)擊:

鼠標(biāo)拖拽:

3.獲得當(dāng)前屏幕大小:

4.獲得鼠標(biāo)當(dāng)前位置:

只要記住以上4個(gè)方法,pymouse模塊你就掌握了。接下來(lái)是比較復(fù)雜的pykeyboard模塊:
1.鍵入字符串

2.按下按鍵與釋放按鍵

3.特殊按鍵的輸入:

3.小練習(xí)
微信的收藏功能相當(dāng)好用,我收藏了幾百個(gè)鏈接和推送,但是微信官方卻沒(méi)有提供批量刪除的功能。。這么明顯的痛點(diǎn)都沒(méi)有修復(fù),也許這就是微信的“任性”吧,優(yōu)秀。
沒(méi)事,有了Python,我們完全可以自己干。開(kāi)始之前,需要下載一個(gè)叫看鼠標(biāo)的軟件,查找微信中某些組件所對(duì)應(yīng)的當(dāng)前屏幕的坐標(biāo),軟件下載:
https://pythondict.com/go/?url=http://www.cadgj.com/wp-content/uploads/2013/07/mousexy.exe

比如紅點(diǎn)處位置為(574, 202). 所以為了實(shí)現(xiàn)批量刪除,我們只需要從這個(gè)位置開(kāi)始,右鍵刪除,然后滾動(dòng)相同寬度,重復(fù)這個(gè)操作即可。
-
鼠標(biāo)
+關(guān)注
關(guān)注
6文章
597瀏覽量
41705 -
鍵盤(pán)
+關(guān)注
關(guān)注
4文章
872瀏覽量
41884 -
自動(dòng)化
+關(guān)注
關(guān)注
31文章
5932瀏覽量
90226 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90025
發(fā)布評(píng)論請(qǐng)先 登錄
千鋒Python教程:121 自動(dòng)化辦公與鼠標(biāo)鍵盤(pán)模擬_第3節(jié)
單片機(jī)鍵盤(pán)鼠標(biāo)的應(yīng)用
低變壓配電自動(dòng)化有哪些特點(diǎn)
python控制CANoe實(shí)現(xiàn)自動(dòng)化測(cè)試的方法
如何實(shí)現(xiàn)無(wú)線鼠標(biāo)的設(shè)計(jì)
鼠標(biāo)的操作方式
鼠標(biāo)的工作方式
無(wú)線鼠標(biāo)的設(shè)計(jì)與實(shí)現(xiàn)
KM3模擬鍵盤(pán)鼠標(biāo)模塊使用說(shuō)明---2.鍵盤(pán)功能
KM3模擬鍵盤(pán)鼠標(biāo)模塊使用說(shuō)明---3.自動(dòng)功能
使用Python腳本實(shí)現(xiàn)自動(dòng)化運(yùn)維任務(wù)
什么是自動(dòng)化測(cè)試框架
Facebook群組自動(dòng)化python – 網(wǎng)絡(luò)自動(dòng)化
Python 模擬鍵盤(pán)鼠標(biāo)的方式實(shí)現(xiàn)自動(dòng)化
評(píng)論