在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用PyAutoGUI包對各種鼠標點擊之類的機械重復操作進行自動執行

Linux愛好者 ? 來源:簡說Python ? 作者:簡說Python ? 2021-06-15 16:18 ? 次閱讀

一、背景我們經常遇到需要進行大量重復操作的時候,比如網頁上填表,對 web 版本 OA 進行操作,自動化測試或者給新系統首次添加數據等。這些操作的特點往往是:數據同構,大多是已經有了的結構化數據;操作比較呆板,都是同一個流程的點擊、輸入;數據量大,極大消耗操作人精力。

那么能不能自動化呢?

二、自動化的方案如果你在 web 上進行操作, Python 的 Selenium 可以滿足要求。如果需要對 GUI 界面進行操作,你恐怕得試驗下“按鍵精靈”能不能滿足要求。對新系統添加初始數據,SQL 導出導入是最高效的方式,不過可能需要進行一些較復雜的處理。

曾經多次遇到要求一條條手動輸入舊數據的系統升級活動。

但以上都存在一些問題, Selenium 比較復雜,按鍵精靈功能上不太完善, SQL 需要一定的知識基礎。那么這里推薦一個更好的解決方案:PyAutoGUI 。

其實 PyAutoGUI 最主要好處就是比較簡單,應急使用的話可以很快構建一個可用的自動化操作腳本。畢竟,數據處理任務本來就比較急迫,沒有時間使用復雜知識,來構建一個完善的腳本。

三、思路和知識點現在哈來說一下基本思路與相關知識點

PyAutoGUI 就是模擬鍵盤、鼠標在界面上進行操作。

這里只使用它的 click 功能來模擬鼠標點擊。

為了獲取需要點擊的位置,設計了一個鼠標坐標獲取的程序。

ASCII 碼的輸入比較簡單。再解決漢字輸入問題,就使得系統基本可用了。

本文以在 web 界面批量新增數據記錄為例,講解如何自動化操作。這個例子只是演示之用,非常簡單,大家自行理解、遷移。

四、操作步驟4.1 初識 PyAutoGUI

簡單地說, PyAutoGUI 就是模擬鍵盤、鼠標在界面上進行操作的包。安裝時直接使用如下語句:pip install pyautogui即可。

編寫一個簡單的測試程序:

import pyautogui as pag

pag.PAUSE = 1.5

pag.click(63,191)

以上程序導入庫,定義了每步驟的暫停時間 1.5 秒(用來留給操作時間),然后在屏幕左起 63 像素,上起 191 像素這個點上點擊了鼠標。

4.2 坐標系

PyAutoGUI 默認的坐標系從屏幕左上角開始,x 軸向右增大,y 軸向下增大。所以顯示器上每個點都有自己的位置。

引申一下,當知道界面上每個按鈕的位置時,點擊這些點,就是執行相應的操作了。

當然,這一切的前提是界面不變。大多數應用的界面、按鈕位置不會變來變去。如果你有這方面需求,可以參考下 locateOnScreen() 函數。這個函數根據你提供的圖片,在屏幕上找到像素匹配的地方。這樣就不怕按鈕動來動去了。

為了獲取屏幕的坐標系,寫了一個簡單的程序,用來獲取鼠標在屏幕上的坐標。大家可以自行下載運行。

import pyautogui as pag

import os

try:

while True:

os.system(‘cls’)

a = ‘%4d,%4d’%pag.position()

print(a)

except Exception as e:

print(e)

運行以上程序,移動鼠標到各個按鈕上,就可以看到相應的坐標。

4.3 點擊

PyAutoGUI 的點擊很簡單:

pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button=‘left’, duration=0.0)

其中x,y是坐標,clicks 是點擊次數,interval 是點擊間隔,button 指代三個鼠標按鈕的哪一個,duiation 是點擊之間的間隔。

寫如下程序,來進行任務、時間和新建按鈕之間的跳轉。

pag.click(63,191)

pag.click(328,191)

pag.click(384,461)

pag.click(374,191)

4.4 輸入

輸入 ASCII 字符和鍵盤擊鍵、熱鍵分別如下:

輸入 ASCII 字符串是typewrite(message=‘test message.’,interval=0.5)

擊鍵是press(‘esc’)

按下是KeyDown(‘ctrl’)

松開是KeyUp(‘ctrl’)

組合鍵是hotkey(‘ctrl’,‘v’)。

至于漢字,稍微復雜點。

4.5 漢字輸入

涉及漢字,無法用 ASCII 方案解決,需要導入包 pyperclip ,這個包封裝了系統剪貼板,大家知道怎么回事了吧。

import pyperclip

#以下讀入內容,就是把內容存入剪貼板。

pyperclip.copy(‘需要輸入的漢字’)

#以下輸出內容,就是粘貼。

pag.hotkey(‘ctrl’,‘v’)

其實就是用 pyperclip 模擬拷貝,用熱鍵 Ctrl+v 粘貼,實現了非 ASCII 字符的輸入。

4.6 集成起來

下面,把整個程序集成起來看:

import pyautogui as pag

import pyperclip

pag.PAUSE = 1.5

pag.FAILSAFE = True

to = [‘測試任務1’,‘測試任務2’,‘測試任務3’,‘測試任務4’,‘測試任務5’,

‘測試任務6’,‘測試任務7’,‘測試任務8’,‘測試任務9’,‘測試任務10’]

for t in to:

pag.click(63,191)

pyperclip.copy(t)

pag.hotkey(‘ctrl’,‘v’)

pag.click(328,191)

pag.click(384,461)

pag.click(374,191)

以上程序,根據 to 列表內容,把操作分解為點擊和粘貼,實現了自動化操作的目的。大部分編碼都很好理解,能跟鼠標操作一一對應起來。可能存在難度的是數據源的問題,總不能把所有數據都寫入程序吧?

五、數據源相較于復雜的現實數據源,最好的方式就是把數據轉成 csv 文件。這樣許多 Excel 都可以另存成這個文件,其本身又是基于文本的,可讀可寫,比較方便。其他諸如 SQL 數據庫、 XML 數據也可以導出轉換為 csv 文件。

假設現在有了 csv 格式數據源 data.csv ,需要這樣操作。

to = []

with open(‘data.csv’)as f:

lines = f.readlines()

for line in lines:

to.append(tuple(line.split(‘,’)))

以上代碼比較簡單,把 csv 中存成的數據存儲到 to 這個數組里,每行數據都是一個元組,調用的時候,如4.6部分代碼所示,使用 for 循環加上元組下標即可。

六、總結

本文使用 PyAutoGUI 包,對各種鼠標點擊、輸入之類的機械重復操作進行自動執行,可大幅提高工作效率。這里只使用了 click 功能和 pyperclip 包的 copy 功能。主要是為了簡化編程,讓大家在緊張和繁瑣的操作中,快速編寫一個自動化執行的小腳本。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據存儲
    +關注

    關注

    5

    文章

    993

    瀏覽量

    51571
  • GUI
    GUI
    +關注

    關注

    3

    文章

    672

    瀏覽量

    40609
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85949

原文標題:解放雙手,利用 PyAutoGUI 快速構建自動化操作腳本

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    CPU的各種指令和執行流程

    在集成電路設計中,CPU的指令是指計算機中央處理單元(CPU)用來執行計算任務的基本操作指令集。這些指令是CPU能夠理解并執行的二進制代碼,它們在計算機內部由硬件控制并按順序執行,從而
    的頭像 發表于 04-18 11:24 ?405次閱讀

    Spectrum數字化儀卡將海豚聲吶點擊轉為鼠標點擊

    ,利用15個水聽器組成的陣列來捕捉海豚發出的聲吶點擊信號,并通過Spectrum 儀器提供的16通道數字化儀系統進行采集。數據使用定制化 AI 程序進行處理,以便通過獲取的不同信號鎖定海豚的位置。2025年底該實驗將進入第二階段
    的頭像 發表于 04-09 15:48 ?114次閱讀
    Spectrum數字化儀卡將海豚聲吶<b class='flag-5'>點擊</b>轉為<b class='flag-5'>鼠標點擊</b>

    DLP6500開發板鏈接時自動跳轉到stand模式,無法控制dmd進行相關操作怎么解決?

    DLP6500開發板鏈接時自動跳轉到stand模式,手動切換為normal模式后又跳回stand模式,無法對板子進行操作點擊軟件按鈕reset也無法解決。這個該怎么解決。我看板子背后
    發表于 02-25 07:13

    機械自動化流水線設計中常見的結構動圖

    機械自動化設備是通過設計一套自動機械結構、電氣、軟件控制邏輯,將人工的操作步驟取代并集成開發,實現自動上下料、
    的頭像 發表于 02-17 17:21 ?579次閱讀
    <b class='flag-5'>機械</b><b class='flag-5'>自動</b>化流水線設計中常見的結構動圖

    RobotStudio 6.08的手動操作方法

    點擊第四個 圖標。然后選中關節,按住鼠標左鍵進行拖拽,即可實現對應關節的手動操作。 方法二:【基本】->【布局】,選中機器人,鼠
    的頭像 發表于 12-18 09:53 ?3265次閱讀
    RobotStudio 6.08的手動<b class='flag-5'>操作</b>方法

    機械手 OEM 的應用

    準確地添加試劑、控制反應條件等,提高實驗的準確性和可重復性;在物理實驗中,機械手可以進行物體的抓取、移動和測量等操作,為科學研究提供有力的支持。 教育培訓 :在教育培訓中,
    發表于 09-18 10:31

    工業機器人和機械臂的設計、功能和應用有哪些區別?

    自動化設備,專門用于在工業生產線或其他工業環境中執行各種操作任務。它們通常具備多軸關節結構,能夠在三維空間內自由移動,并搭載各種工具、夾具或
    的頭像 發表于 08-16 09:43 ?871次閱讀

    請問Filter Pro設計濾波器怎么自定義修改電阻和電容的值?

    在Schematic頁面得到電路原理圖后,手冊上說點擊下圖中藍色的電阻和電容值可以修改,但是手動改完后回車或者鼠標點擊其他地方,值又回去了,根本沒變,沒法修改
    發表于 08-14 08:03

    ESP-01升級后,從PC執行ping操作時,數據丟失了,怎么解決?

    接收來自 Google Chrome 的以太網數據 當我從PC執行ping操作時,數據丟失了 當我試圖發出 AT 命令時,它突然自行重置 為什么會這樣?
    發表于 07-17 06:09

    機器視覺控制機械手的具體過程

    視覺控制機械手的具體過程的介紹: 系統設計 機器視覺控制機械手系統的設計需要考慮以下幾個方面: 1.1 系統組成 機器視覺控制機械手系統主要由以下幾個部分組成: 機械手:用于
    的頭像 發表于 07-04 10:40 ?1204次閱讀

    機械自動化和電氣自動化區別是什么

    生產過程中的自動化控制和管理。它主要涉及到機械設計、制造、裝配、檢測等環節,通過自動化設備替代人工操作,提高生產效率和產品質量。 電氣自動
    的頭像 發表于 07-01 09:33 ?6039次閱讀

    機械自動化是自動化的一種嗎

    引言 自動化技術是指利用控制裝置對生產過程進行控制,以實現生產過程的自動化。機械自動化是自動化技
    的頭像 發表于 07-01 09:32 ?2260次閱讀

    使用Linux CLI應用程序進行批量傳輸,無法執行寫入/讀取操作怎么解決?

    FPGA 通過 GPIF 接口與 FX3 連接。 主機應用程序將使用 FPGA 上的大容量端點 0x1 和 0x81 執行寄存器寫入/讀取操作。 1) 應用程序使用 Xferdata() 進行批量
    發表于 05-29 06:07

    使用cyusb3014進行開發設計,如何實現PC端的上位機可以自動檢測到有數據寫入并執行讀取動作?

    目前我正在使用cyusb3014進行開發設計,硬件包括PC,cyusb3014,以及FPGA。FPGA 負責寫入數據,PC端負責讀取數據。我希望當有數據從FPGA端寫入時,PC端的上位機可以自動檢測到有數據寫入,并執行讀取動作,
    發表于 05-21 08:11

    電池防水測試儀器的操作方法

    電池作為現代電子設備中的重要組成部分,其防水性能是確保設備在惡劣環境下穩定運行的關鍵因素。因此,對電池進行防水測試至關重要。本文將詳細介紹電池防水測試儀器的
    的頭像 發表于 05-14 14:27 ?691次閱讀
    電池<b class='flag-5'>包</b>防水測試儀器的<b class='flag-5'>操作</b>方法
    主站蜘蛛池模板: 欧美破处视频在线 | 黄录像欧美片在线观看 | 亚洲第一福利网站 | h视频在线观看视频观看 | 国内一级特黄女人精品毛片 | 在线视频影院 | 日本黄色片在线播放 | 日本一区二区在线免费观看 | 亚洲精品综合网在线8050影院 | 国产成人mv 在线播放 | 日韩毛片免费视频一级特黄 | 日本美女视频网站 | 欲色影院 | www.黄黄黄 | 国产清纯白嫩大学生正在播放 | 求av网址 | 成人五级毛片免费播放 | 视频网站在线 | 天堂网www在线资源网 | 日本三级免费网站 | 亚洲成人网在线 | 久操免费在线 | 超级乱淫小黄文小说 | 毛片网站网址 | 国产老头和美女在线观看 | 羞羞答答91麻豆网站入口 | 狠狠色狠狠色综合日日32 | 日本v片免费一区二区三区 日本www.色 日本wwwwww | 国产成在线人视频免费视频 | 精品视频一区二区三区四区五区 | 欧美涩色 | 嫩草影院久久国产精品 | 国产美女亚洲精品久久久综合 | 成年网站在线 | 亚洲午夜一区二区三区 | 在线黄色免费网站 | 久久天天躁综合夜夜黑人鲁色 | 五月婷婷七月丁香 | 全黄h全肉边做边吃奶在线观看 | 操日韩| 日本番囗|