★悩み★
・PyAutoGUIで画面遷移が完了するまで待機ってできる?
・PyAutoGUIで処理を一定時間待たさせたいけど、sleepを使えばいいの?
・キーボード入力やマウス操作ごとに一定時間待たさせるには?
こういった「悩み」に答えます。
★本記事の内容★
① PyAutoGUIとは
➁ PyAutoGUIでよく使う待機処理3選【sleepの利用】
➂ PyAutoGUIのPAUSEで処理ごとに待機を実現
これからご紹介する「PyAutoGUIでsleepやPAUSEによる待機処理」を実践したことで、10分くらいで「Webブラウザでページ遷移が完了するまで待つ」プログラムを作れました(下の動画参照)。
記事の前半では「PyAutoGUIとは?」や「PyAutoGUIのインストール方法」を解説します。
記事の後半では「そもそも待機処理とは?」から「PyAutoGUIの画像認識とsleepを使った待機処理を実現する方法」までを紹介します。
この記事を読み終えることで、「PyAutoGUIで任意の処理が終わるまで処理を待機」できる状態になります。
PyAutoGUIとは?
「PyAutoGUIとは?」/「PyAutoGUIの特徴」/「PyAutoGUIのユースケース(利用場面)」に関しては、以下の記事をご覧ください。
>> 【要点】PyAutoGUIとは?初心者向けに特徴から使い方までを図解
また、PyAutoGUIのインストール方法に関しては、以下の記事をご覧ください。
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順
>> 【最短5分】UbuntuにPyAutoGUIをインストールする手順
>> 【最短5分】MacにPyAutoGUIをインストールする手順
ウェブブラウザなどの画面操作を自動化をしたい場合、PyAutoGUIを使って無料で実現できます。
まずは、PyAutoGUIで「待機処理」を実現する方法から紹介しますね。
PyAutoGUIでよく使う待機処理3選【sleepの利用】
「PyAutoGUIでよく使う待機処理3選【sleepの利用】」に関してご紹介します。
★ご紹介事項★
・そもそも待機処理とは?
・メッセージボックスによる待機処理
・sleepで一定時間の待機処理
・画像認識を使った待機処理
以降で、上記の各項目に関してご説明します。
そもそも待機処理とは?
「そもそも待機処理とは?」に関して解説します。
定義を説明し、利用する場面に関して簡単にご紹介しますね。
待機処理とは、IT業界では以下の意味合いで使われることが多いです。
★待機処理とは?★
待機処理とは、「実行した処理が終わるまで、次の処理の実行を待つこと」です(下図参照)。
以下の場面でよく利用されます。
★待機処理がよく使われる場面★
・Webブラウザのページ遷移が完了するまで次の処理を待つ
・アプリケーションの画面が切り替わるまでマウス操作を待つ
・データ収集が終わるまでデータ集計を待つ
メッセージボックスによる待機処理
「メッセージボックスによる待機処理」に関して説明します。
前処理の完了をメッセージボックスで通知し、メッセージボックスを閉じることで後続処理を実行させる方法があります。
メッセージボックスを使うことで、下の動画のような待機処理を実現できます。
ちなみに、PyAutoGUIでメッセージボックスを使う方法に関しては、以下の記事をご覧ください。
>> 【最短5分】PyAutoGUIでメッセージボックスの表示方法4選
sleepで一定時間の待機処理
「sleepで一定時間の待機処理」に関して解説します。
Pythonのsleep関数を使うことで、一定時間の待つことができます。
sleep関数の構文は、以下となります。
★sleepのリファレンス★
処理:指定された秒だけ待つ
使い方:time.sleep(数字)
参照:sleepのリファレンス(Python公式サイト)
「sleep」を使った待機処理の書き方は、主に以下となります。
★使い方★
・書き方
import time
待機前に実行したい処理
time.sleep(待機したい秒数)
待機後に実行したい処理
・例
import time
print(‘start’)
time.sleep(5)
print(‘end’)
・実行結果
start出力後、5秒待ってからendを出力する。
上記のsleepを使うことで、下の動画のように数秒待機しつつキーボードを入力できます。
ちなみに、上の動画のプログラムを知りたい方は、以下の記事「PyAutoGUIでwhileによる繰り返し実行するプログラムを作成」の箇所をご覧ください。
>> 【最短5分】PyAutoGUIで繰り返し実行(loop)を実現する2つの方法
画像認識を使った待機処理
「画像認識を使った待機処理」に関して解説します。
PyAutoGUIの画像認識の関数(例:locateOnScreen)とsleepとforを組み合わせて使うことが多いです。
PyAutoGUIの画像認識の関数「locateOnScreen」「sleep」「for」を組み合わせることで、「ある画像が画面上に表示されるまで待機」を実現できます。
「ある画像が画面上に表示されるまで待機」する処理の書き方は、主に以下となります。
★使い方★
・書き方
import time
import pyautogui as pag
待機前に実行したい処理
for pause_num in range(繰り返し回数):
try:
if pag.locateOnScreen(画面上に表示される画像):
break
except Exception as e:
time.sleep(待機したい秒数)
待機後に実行したい処理
・例
import time
import pyautogui as pag
print(‘start’)
for pause_num in range(60):
try:
if pag.locateOnScreen(‘sample.jpg’):
break
except Exception as e:
time.sleep(1)
print(‘end’)
・実行結果
start出力後、sample.jpgが画面上に表示されるまで待機する。
sample.jpgが画面上に表、または、60秒経過後、endを出力する。
上記の例を実行した結果が、下の動画になります。
ちなみに、PyAutoGUIの画像認識の関数(例:locateOnScreen)に関して詳しく知りたい方には、以下の記事がオススメです。
>> 【最短5分】PyAutoGUIのlocateOnScreenで画像クリック
Webブラウザなどの遷移が完了するまで待機が必要な場合は、上記3つのどれかの待機処理を使ってみましょう。
以降では、PyAutoGUIの処理ごとに待機処理を実施する方法をご紹介します。
PyAutoGUIのPAUSEで処理ごとに待機を実現
「PyAutoGUIのPAUSEで処理ごとに待機を実現」に関してご紹介します。
★ご紹介事項★
① PAUSEの構文を解説
➁ PAUSEでPyAutoGUIの処理ごとに待機するプログラムを作成
以降で、上記の各項目に関してご説明します。
PAUSEの構文を解説
「PAUSEの構文を解説」に関して説明します。
PyAutoGUIからのキーボード入力ごとに待ちたい場合、PAUSEを使うと簡単に実現できます。
PAUSEの構文は、以下となります。
★PAUSEのリファレンス★
処理:PyAutoGUIの処理ごとに指定された秒数だけ待機する
使い方:pyautogui.PAUSE = 待機したい秒数
初期値:py.autogui.PAUSEの初期値は0.1
参照:PAUSEのリファレンス(公式サイト)
「PAUSE」を使った待機処理の書き方は、以下となります。
★使い方★
・書き方
import pyautogui
pyautogui.PAUSE = 2
PyAutoGUIの処理
・例
import pyautogui
pyautogui.PAUSE = 10
pyautogui.write(‘start’)
pyautogui.hotkey(‘enter’)
pyautogui.write(‘end’)
・実行結果
start出力後、10秒待機してからendを出力する。
その後、10秒待機してからプログラムが終了する。
PAUSEでPyAutoGUIの処理ごとに待機するプログラムを作成
「PAUSEでPyAutoGUIの処理ごとに待機するプログラムを作成」に関して解説します。
PAUSEを使ってキーボード入力ごとに待機するプログラムを作成してみましょう。
以下のプログラムを作成し、「pyautogui-pause.py」というファイル名で保存してください。
import pyautogui
import subprocess
import time
# メモ帳を開く
subprocess.Popen([r'c:\windows\system32\notepad.exe'], shell=True)
time.sleep(5)
# 待機時間を設定
pyautogui.PAUSE = 10
# キーボード入力
pyautogui.write('start')
pyautogui.hotkey('enter')
pyautogui.write('end')
続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。
python pyautogui-pause.py
コマンド実行後、下の動画のように処理が実行された場合、「正常に作成したプログラムを実行できた」と判断できます。
PyAutoGUIのPAUSEを使うことで、マウス操作やキーボード入力ごとに待機を簡単に実現できます。
ちなみに、「PyAutoGUIでExcelやWordの操作を自動化する方法は?」や「Pythonを基礎から体系的に学ぶ方法は?」などを知りたい方には、以下の記事で紹介している本や教材がオススメです。
>> PyAutoGUIの入門に役に立つオススメ本や教材6選
【まとめ】PyAutoGUIでsleepやPAUSEによる待機処理【実例あり】
いかがでしたでしょうか?
上記で紹介した「sleep」「PAUSE」を理解していただくと、PyAutoGUIで待機処理を簡単に実現できます。
最後にもう一度内容を確認しましょう。
★PyAutoGUIで待機処理を実現する方法★
・待機処理とは、ある状態に遷移するまで処理を待機することである
・sleep、メッセージボックス、PAUSEを使う
・forとlocateOnScreenとsleepである画像が表示されるまで待機できる
さらに体系的にPyAutoGUIを学習したい方は、以下の記事で紹介している教材がオススメです。
>> PyAutoGUIの入門に役に立つオススメ本や教材6選
コメント