LoginSignup
9
18

More than 3 years have passed since last update.

はじめに

今回は自作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)               #横方向にスクロール

スクリーンショット編

sample.py
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に指定したテキスト

スクリーンショット 2020-12-14 121406.png

-確認メッセージ

pyautogui.confirm(text='終了しても良いですか?',title='確認',buttons=['OK','Cancel'])

戻り値 : buttonsに指定したテキスト

スクリーンショット 2020-12-14 121441.png

-入力画面

pyautogui.prompt(text='生年月日を入力してください',title='入力',default='YYYY/MM/DD')

戻り値 : 入力したテキスト、キャンセル時はNone

スクリーンショット 2020-12-14 121630.png

-パスワード入力画面

pyautogui.password(text='パスワードを入力してください',title='パスワード',default='',mask='*')

戻り値 : 入力したテキスト、キャンセル時はNone
入力時、maskに指定した文字に置き換える

スクリーンショット 2020-12-14 121706.png

今回はこれで終わりにします!
意外とGUI用のメソッドがあって驚きです💦
それじゃ、じゃあの~✋

9
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
18