網站首頁 編程語言 正文
引言
pyautogui一個神奇的圖像自動化庫,學會之后無所不能。上能掛機刷寶箱,下能自動寫文檔。(>人<;)讓我裝個逼,別錘我,謝謝!
安裝
這個pyautogui在win10上的安裝挺坑的,當初第一次安裝時出現了好幾次錯誤(┬┬﹏┬┬)
安裝命令如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui
導入模塊
在安裝好這個模塊后我們還需要在程序的開頭加上如下代碼導入該模塊
import pyautogui
鼠標操作
講鼠標操作前,我們提個問題,如何確認電腦上屏幕上某個圖標的位置?
答:是通過圖標的左上角的坐標位置進行確認的。
如圖所示,我們可以看看出是以屏幕的左上角作為起始點,進行確認屏幕中的位置。細心的小伙伴可能會發現,這坐標的走向類似于數學坐標系中的第四象限。沒錯,不過Y軸的數值類似于第四象限的Y軸的絕對值。也就是說Y的值越大,在屏幕中的為位置就越向下。說明如果我想讓鼠標點擊某個位置,必須要先獲取該位置的坐標值。
1、獲取鼠標位置
所以我們的第一條命令就是獲取鼠標當前的位置。
x,y = pyautogui.position()
我們來打印下當前的位置
print ("當前鼠標的X軸的位置為:{},Y軸的位置為:{}".format(x,y))
輸出結果如下:
當前鼠標的X軸的位置為:333,Y軸的位置為:327
2、獲取屏幕分辨率
如何獲取屏幕的分辨率呢?也就是最大的X和Y的值
x,y = pyautogui.size()
打印屏幕的分辨率
print ("當前屏幕的分辨率是{}*{}".format(x,y))
輸出結果:
當前屏幕的分辨率是1536*864
3、移動鼠標
比如說,電腦桌面上的火狐瀏覽器的位置是(100,100).我如何將鼠標移動到這個位置呢?
pyautogui.moveTo(x=300,y=300,duration=0.25)
duration類似于移動時間或移動速度,省略后則是瞬間移動到指定的位置
4、單擊鼠標
如何讓鼠標左鍵點擊屏幕中(100,100)的位置呢?
pyautogui.click(x=100,y=150,button='left')
當button=‘left’
相當于鼠標左鍵,button=‘right’
相當于鼠標右鍵。當不帶button參數時,默認為左鍵。
5、雙擊鼠標
如何雙擊鼠標呢?
pyautogui.doubleClick(x=100,y=150,button="left")
當button=‘left’
相當于鼠標左鍵,button=‘right’
相當于鼠標右鍵。當不帶button參數時,默認為左鍵。
6、拖拽鼠標
如何實現拖拽鼠標?
pyautogui.dragTo(x,y,duration=0.25)
duration類似于移動時間或移動速度,省略后則是瞬間移動到指定的位置
鍵盤操作
在講鍵盤操作之間,先展示一張從AB教程網盜來的按鍵映射表
1、發送組合鍵
pyautogui.hotkey('win', 'r')
發送的按鍵之間使用【,】逗號隔開。
2、輸入內容
pyautogui.typewrite(message="hello world",interval=0.25)
message后面跟要輸入的內容,interval用于設置輸入的速度
高級操作
pyautogui有內置的截圖功能,可以使用screenshot
方法進行截圖,然后可以操作截圖,進行確認圖片位置或者指定坐標的顏色等。
1、獲取坐標點的像素
img = pyautogui.screenshot() color = img.getpixel((100,100))
執行結果:
該坐標的像素點的顏色是:(255, 255, 255)
返回的是三原色值。
2、獲取圖片的位置
x,y,width,height = pyautogui.locateOnScreen('a.png')
括號中傳遞的是圖標文件的路徑
執行:
print ("該圖標在屏幕中的位置是:X={},Y={},寬{}像素,高{}像素".format(x,y,width,height))
結果:
該圖標在屏幕中的位置是:X=9,Y=741,寬81像素,高95像素
3、獲取圖標的中心點
x, y = pyautogui.center((9,741,81,95))
括號中分別傳遞,圖片的X軸,Y軸,寬,長
執行命令:
x,y = pyautogui.center((9,741,81,95))
執行結果:
該圖標的中心點是:X=49,Y=788
教學代碼
# -*- coding:utf-8 -*- #作者:貓先生的早茶 #時間:2019年5月26日 import pyautogui """獲取鼠標當前的坐標位置""" x,y = pyautogui.position() print ("當前鼠標的X軸的位置為:{},Y軸的位置為:{}".format(x,y)) """獲取屏幕分辨率""" x,y = pyautogui.size() print ("當前屏幕的分辨率是{}*{}".format(x,y)) """移動鼠標到指定位置""" pyautogui.moveTo(x=300,y=300,duration=0.25) """點擊鼠標""" pyautogui.click(x=100,y=150,button='right') """雙擊鼠標""" pyautogui.doubleClick(x=100,y=150,button="left") """發送組合鍵""" pyautogui.hotkey('win', 'r') """輸入內容""" pyautogui.typewrite(message="hello world",interval=0.25) """獲取指定坐標的顏色""" img = pyautogui.screenshot() color = img.getpixel((100,100)) print ("該坐標的像素點的顏色是:{}".format(color)) """獲取圖標的位置""" x,y,width,height = pyautogui.locateOnScreen('a.png') print ("該圖標在屏幕中的位置是:X={},Y={},寬{}像素,高{}像素".format(x,y,width,height)) """獲取中心點""" x,y = pyautogui.center((9,741,81,95)) print ("該圖標的中心點是:X={},Y={}".format(x,y))
總結
原文鏈接:https://blog.csdn.net/qq_43017750/article/details/90575240
相關推薦
- 2024-01-30 在 Jenkins 中使用 SSH Servers 配置文件上傳路徑
- 2022-06-25 分享Pytest?fixture參數傳遞的幾種方式_python
- 2022-06-14 GO語言結構體面向對象操作示例_Golang
- 2023-07-07 React中useState的setState方法請求了好多次
- 2022-08-02 C#中的multipart/form-data提交文件和參數_C#教程
- 2022-08-25 Python中的基本數據類型介紹_python
- 2024-02-16 SpringBoot 攔截器Intercepto的創建與基本使用
- 2023-04-07 C語言如何計算字符串長度_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支