PyAutoGUIでGUIの自動操作

 PyAutoGUIがシンプルでかなり使いやすかったのでメモ。
 PyAutoGUIは、GUIの自動操作をサポートするPython用ライブラリ。マウス操作、キーボード操作、スクリーンキャプチャ、指定した画像のマッチングと座標取得などの機能を提供する。シンプルだけれど、自動操作に必要な機能がひと通り揃っている。

 使用例として、GUI縛りのツールを自動操作させ、結果が得られたらその画面キャプチャを保存するスクリプトを載せる。

#-*- coding: utf-8 -*-
#run_and_capture.py
import pyautogui, time
from datetime import datetime

# 処理開始ボタンを探してクリックする
position = pyautogui.locateCenterOnScreen('startbutton.png') #startbutton.pngは処理開始ボタンのキャプチャ画像
pyautogui.click(position, duration = 0.2)

nsec = 0
while True:
	posPassInfo = pyautogui.locateOnScreen('pass.png') #pass.pngは成功時表示のキャプチャ画像
	posFailInfo = pyautogui.locateOnScreen('fail.png') #fail.pngは失敗時表示のキャプチャ画像
	if posPassInfo is not None or posFailInfo is not None:
		# 成功あるいは失敗表示を確認できたら、日付名でスクリーンショットを保存
		filename = datetime.now().strftime("%Y%m%d_%H%M%S") + ".png"
		s = pyautogui.screenshot()
		s.save(filename)
		break
	time.sleep(1)
	nsec += 1
	if nsec > 5:
		print("timeout") #処理操作開始後、5s以上経過するまで結果表示を得られなかったらタイムアウトで終了
		break