如何使用python實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊
這篇文章主要介紹了如何使用python實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
不知道大家在工作中有沒(méi)有一些工作需要重復(fù)的點(diǎn)擊鼠標(biāo),因?yàn)闀?huì)影響到財(cái)務(wù)統(tǒng)計(jì)報(bào)表的關(guān)系,我們每個(gè)月底月初都要修改ERP中的單據(jù)日期,單據(jù)多的時(shí)候光修改就能讓你點(diǎn)鼠標(biāo)點(diǎn)到手麻。(這里要吐槽一下浪沙軟件,別的單據(jù)都可以批量修改日期,就是這個(gè)移倉(cāng)單不行,你們研發(fā)怎么就這么懶?剩下這么點(diǎn)工作就不完成他?)之前同事有跟我提到過(guò)鍵盤精靈,因?yàn)楫?dāng)時(shí)負(fù)責(zé)別的工作,一直沒(méi)有去了解?,F(xiàn)在公司人員減少了,這工作又回到我身上了,剛好之前我在學(xué)習(xí)連連看的時(shí)候,知道Python 也能實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊,那就直接用上唄。
先來(lái)了解一下pyautogui。
pyautogui.moveTo,移動(dòng)鼠標(biāo);pyautogui.click,點(diǎn)擊鼠標(biāo),通過(guò)button來(lái)控制左擊還是右擊,click=n設(shè)置點(diǎn)擊的次數(shù),interval控制點(diǎn)擊用的時(shí)間,有些程序確認(rèn)雙擊是有個(gè)時(shí)間間隔的,如果不加上這個(gè)間隔,還真沒(méi)辦法識(shí)別。(好吧,這里說(shuō)的就是你,浪沙。至少第一個(gè)單你是識(shí)別不了。害我沒(méi)少測(cè)試。)就這兩個(gè)功能對(duì)于我的這次操作已經(jīng)是夠用了。
當(dāng)然Pyautogui的作用肯定不止這些,pyautogui.typewrite還能輸入鍵盤有的字母的數(shù)字符號(hào),screenshot截屏(這個(gè)在實(shí)現(xiàn)連連看的時(shí)候也能用得上哦。)等等,有興趣的可以度娘學(xué)習(xí)一下。我們知道怎么模擬控制鼠標(biāo)了,總得告訴它,要走到哪里,點(diǎn)擊哪里吧。
Pyautogui是用像素來(lái)告訴程序要操作的位置的。那我們?cè)趺吹玫竭@個(gè)像素呢?這里,我用的是操作系統(tǒng)自帶的畫圖程序。畫圖里面“選擇”這個(gè)功能會(huì)顯示我們所選擇的區(qū)域的像素,我們只要從我們需要點(diǎn)擊的位置一直選到最左上角就可以了。
好了,到這里萬(wàn)事俱備,上個(gè)代碼吧。
import pyautogui for i in range(2, 11): 用0.5 秒的時(shí)間把光標(biāo)移動(dòng)到(400, 175 + i * 20) 位置 pyautogui.moveTo(400, 175 + i * 20, duration = 0.5) pyautogui.click(clicks = 2, button = 'left', interval = 0.05)# 點(diǎn)擊進(jìn)入單據(jù) time.sleep(3) pyautogui.click(100, 140)# 點(diǎn)擊修改 time.sleep(3) pyautogui.click(350, 190, button = 'left')# 左擊發(fā)貨日 pyautogui.click(350, 190, button = 'right')# 右擊發(fā)貨日 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)# 發(fā)出日大于接收日, 是 time.sleep(1.5) pyautogui.click(155, 140)# 點(diǎn)擊保存 time.sleep(2) pyautogui.click(432, 140)# 點(diǎn)擊查詢 time.sleep(5)
我這里一個(gè)for 循環(huán)是讓他從第一張單開(kāi)始操作,操作到這一頁(yè)的最后一張單。Time.sleep嘛,這個(gè)系統(tǒng)運(yùn)行是需要時(shí)間的,我們讓鼠標(biāo)休息一下。
最后還有一個(gè)要可能需要提醒大家的地方就是,如果程序走到一半,發(fā)現(xiàn)沒(méi)必要再執(zhí)行下去了,或者有錯(cuò)誤了(比如系統(tǒng)卡死了設(shè)置的休息時(shí)間不夠),希望停止程序,這時(shí)候CTRL+C是不行的。
你需要把你的鼠標(biāo)放到屏幕的最左上角。一般幾秒后點(diǎn)擊就會(huì)停止下來(lái),(python shell會(huì)報(bào)錯(cuò),這個(gè)不用管的)至于效果嘛,這里就不錄動(dòng)圖了,畢竟是會(huì)泄漏個(gè)人和公司信息。肯定是親測(cè)有效,以我半個(gè)小時(shí)的休息時(shí)間做擔(dān)保。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用TensorFlow搭建一個(gè)全連接神經(jīng)網(wǎng)絡(luò)教程
今天小編就為大家分享一篇使用TensorFlow搭建一個(gè)全連接神經(jīng)網(wǎng)絡(luò)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Tensorflow獲取張量Tensor的具體維數(shù)實(shí)例
今天小編就為大家分享一篇Tensorflow獲取張量Tensor的具體維數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07python將字符串轉(zhuǎn)換成json的方法小結(jié)
這篇文章主要介紹了python將字符串轉(zhuǎn)換成json的方法小結(jié),通過(guò)實(shí)例代碼給大家介紹將字符串型的數(shù)據(jù)轉(zhuǎn)換成dict類型遇到的問(wèn)題,需要的朋友可以參考下2019-07-07