這篇文章主要介紹了如何使用python實現模擬鼠標點擊,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
不知道大家在工作中有沒有一些工作需要重復的點擊鼠標,因為會影響到財務統計報表的關系,我們每個月底月初都要修改ERP中的單據日期,單據多的時候光修改就能讓你點鼠標點到手麻。(這里要吐槽一下浪沙軟件,別的單據都可以批量修改日期,就是這個移倉單不行,你們研發怎么就這么懶?剩下這么點工作就不完成他?)之前同事有跟我提到過鍵盤精靈,因為當時負責別的工作,一直沒有去了解。現在公司人員減少了,這工作又回到我身上了,剛好之前我在學習連連看的時候,知道Python 也能實現模擬鼠標點擊,那就直接用上唄。
先來了解一下pyautogui。
pyautogui.moveTo,移動鼠標;pyautogui.click,點擊鼠標,通過button來控制左擊還是右擊,click=n設置點擊的次數,interval控制點擊用的時間,有些程序確認雙擊是有個時間間隔的,如果不加上這個間隔,還真沒辦法識別。(好吧,這里說的就是你,浪沙。至少第一個單你是識別不了。害我沒少測試。)就這兩個功能對于我的這次操作已經是夠用了。
當然Pyautogui的作用肯定不止這些,pyautogui.typewrite還能輸入鍵盤有的字母的數字符號,screenshot截屏(這個在實現連連看的時候也能用得上哦。)等等,有興趣的可以度娘學習一下。我們知道怎么模擬控制鼠標了,總得告訴它,要走到哪里,點擊哪里吧。
Pyautogui是用像素來告訴程序要操作的位置的。那我們怎么得到這個像素呢?這里,我用的是操作系統自帶的畫圖程序。畫圖里面“選擇”這個功能會顯示我們所選擇的區域的像素,我們只要從我們需要點擊的位置一直選到最左上角就可以了。
好了,到這里萬事俱備,上個代碼吧。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import pyautogui for i in range ( 2 , 11 ): 用 0.5 秒的時間把光標移動到( 400 , 175 + i * 20 ) 位置 pyautogui.moveTo( 400 , 175 + i * 20 , duration = 0.5 ) pyautogui.click(clicks = 2 , button = 'left' , interval = 0.05 ) # 點擊進入單據 time.sleep( 3 ) pyautogui.click( 100 , 140 ) # 點擊修改 time.sleep( 3 ) pyautogui.click( 350 , 190 , button = 'left' ) # 左擊發貨日 pyautogui.click( 350 , 190 , button = 'right' ) # 右擊發貨日 time.sleep( 1.5 ) pyautogui.click( 595 , 397 ) # 選擇日期5 time.sleep( 1.5 ) pyautogui.click( 815 , 472 ) # 完成 time.sleep( 1.5 ) pyautogui.click( 565 , 425 ) # 發出日大于接收日, 是 time.sleep( 1.5 ) pyautogui.click( 155 , 140 ) # 點擊保存 time.sleep( 2 ) pyautogui.click( 432 , 140 ) # 點擊查詢 time.sleep( 5 ) |
我這里一個for 循環是讓他從第一張單開始操作,操作到這一頁的最后一張單。Time.sleep嘛,這個系統運行是需要時間的,我們讓鼠標休息一下。
最后還有一個要可能需要提醒大家的地方就是,如果程序走到一半,發現沒必要再執行下去了,或者有錯誤了(比如系統卡死了設置的休息時間不夠),希望停止程序,這時候CTRL+C是不行的。
你需要把你的鼠標放到屏幕的最左上角。一般幾秒后點擊就會停止下來,(python shell會報錯,這個不用管的)至于效果嘛,這里就不錄動圖了,畢竟是會泄漏個人和公司信息。肯定是親測有效,以我半個小時的休息時間做擔保。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/chengxyuan/p/12146373.html