#はじめに
今回は自作RPAに心強い味方のpyautoguiについて詳しく紹介していきます!
こちら ~会社の業務をRPAで効率化した話~でも使用したライブラリです
##開発環境
- iMac 2019 Big sur(Boot Campでwindows使用)
- Python 3.8.6
- IDE 3.8
- PyAutoGUI 0.9.51
##インストール方法
- macOS&Linux >
python3 -m pip install pyautogui
- Windows >
pip install pyautogui
##キーボード操作編
###-文字入力
import pyautogui
pyautogui.write('Hello python!')
pyautogui.write('Hello python!', interval = 0.25)
interval=(秒)
1文字入力する間隔、省略すると一瞬
日本語入力は直接は不可能
キャラ文字のみ対応、「shift」や「F1」キーはwrite()
では使えない
###-キー操作
import pyautogui
pyautogui.press('enter')
pyautogui.press(['left','left','left']) #or pyautogui.press('left', presses=3)
pyautogui.keyDown('shift')
pyautogui.keyUp('shift')
pyautogui.hotkey('ctrl','c')
機能 | |
---|---|
press() | 押すだけ。['','']またはpressesの指定で連打可能 |
keyDown() | 押し続ける。 |
keyUp() | keyDown()の解除 |
hotkey() | 2つ以上のキーの同時押し |
####使えるキーコード一覧 |
####-日本語の入力方法
import pyautogui
pyautogui.press('kanji')
pyautogui.write('ohayougozaimasu.')
pyautogui.press('enter')
英字から、半角/全角変換キーを押してローマ字入力させる方法が一番簡単にできます。
漢字変換は少し難しいような気がしますが、、、
定型文のコピペであればpyautogui.hotkey()
でなんとかなるでしょう!
##マウス操作編
###-ムーブ、ドラッグ系
import pyautogui
pyautogui.size() #画面のサイズ取得 return -> (width,height)
pyautogui.position() #現在のマウスの座標 return -> (X,Y)
pyautogui.moveTo(X,Y)
pyautogui.move(width,height)
pyautogui.dragTo(X,Y,button='left')
pyautogui.drag(width,height,button='right')
機能 | |
---|---|
moveTo(X,Y) | 画面の座標(X,Y)に移動する |
move(width,height) | 現在のマウスの座標からwidth,height分動かす |
dragTo(X,Y) | 画面の座標(X,Y)までドラッグする |
drag(X,Y) | 現在のマウスの座標からwidth,height分ドラッグする |
durationを指定すると動かす時間を決めることができる
###-クリック系
import pyautogui
pyautogui.click() #現在のマウスの座標をクリック
pyautogui.click(button='right') #右クリック
pyautogui.click(clicks=2,interval=0.25) #0.25秒の間隔で2回クリック
pyautogui.click(x=100,y=200) #座標(X,Y)をクリック
pyautogui.doubleClick() #ダブルクリック
###-スクロール系
import pyautgoui
pyautogui.scroll(10) #上に10スクロール
pyautogui.scroll(-10) #下に10スクロール
pyautogui.scroll(10,x=100,y=100) #座標(x,y)に移動後,上にスクロール
pyautogui.hscroll(10) #横方向にスクロール
##スクリーンショット編
import pyautogui
pyautogui.screenshot() #スクリーンショット撮影
pyautogui.screenshot('hoge.png') #スクリーンショット撮影後に'hoge.png'で保存
pyautogui.locateOnScreen('hoge.png')
pyautogui.locateAllOnScreen('hoge.png')
pyautogui.locateCenterOnScreen('hoge.png')
機能 | |
---|---|
locateOnScreen | 画面上で一番最初に見つけたターゲットの(Left,Top,Width,Height)をRETURNする |
locateAllOnScreen | 画面上に存在するターゲット全ての(Left,Top,Width,Height)をRETURNする |
locateCenterOnScreen | 画面上で一番最初に見つけたターゲットの中心座標(x,y)をRETURNする |
いずれも、存在しない場合はNoneを返す。
##メッセージボックス編
###-アラート表示
pyautogui.alert(text='入力ミスがあります',title='注意',button='OK')
戻り値 : buttonに指定したテキスト
###-確認メッセージ
pyautogui.confirm(text='終了しても良いですか?',title='確認',buttons=['OK','Cancel'])
戻り値 : buttonsに指定したテキスト
###-入力画面
pyautogui.prompt(text='生年月日を入力してください',title='入力',default='YYYY/MM/DD')
戻り値 : 入力したテキスト、キャンセル時はNone
###-パスワード入力画面
pyautogui.password(text='パスワードを入力してください',title='パスワード',default='',mask='*')
戻り値 : 入力したテキスト、キャンセル時はNone
入力時、maskに指定した文字に置き換える
今回はこれで終わりにします!
意外とGUI用のメソッドがあって驚きです💦
それじゃ、じゃあの~✋