概要
使った事がないpyautoguiを試しに使ってみるために、実用性は皆無なコードを作成して遊んでみる
仕様
・タスクバーにあるGoogle Chromeをクリックして、ブラウザを立ち上げた後に「オリンピック」という文字を検索窓に入力して検索する。
・Google Chromeはタスクバーにピン止めしてある前提
・マルチディスプレイには非対応
・Google Chromeのアイコンの場所、検索窓の場所は画像認識(保存画像とディスプレイ上の画像の比較)で行う
事前準備
pyautoguiをインストール
pip install pyautogui
画像処理ライブラリPillowをインストール
pip install Pillow
OpenCVをインストール
pip install opencv-python
pip install opencv-contrib-python
画像認識用の画像を事前に準備する。
Windowsの場合は、[Windows]+[Shift]+[S]キーで画像を切り取って保存するのがおすすめです。
今回は以下の2つの画像を準備しています。
chrome.png
コード
# 使用するモジュールをインポート
import pyautogui as pa
import pyperclip
import time
# タスクバーにあるGoogle Chromeを画像認識で座標取得
position = pa.locateOnScreen("chrome.png", confidence=0.8)#confidenceが低いほど曖昧マッチング
# 画像認識した座標をダブルクリック
pa.doubleClick(position)
# ブラウザが開ききるまで
time.sleep(1)
# ブラウザ画面を最大化しとかないと何故かうまくいかなかったので、画面を最大化しておく
pa.hotkey("win", "up")
# ブラウザの検索窓を画像認識で取得
search_pos = pa.locateOnScreen("search.PNG", confidence=0.1) # 特徴的な画像ではないのでconfidenceを低くしないとうまくマッチングしない
pa.click(search_pos)
# 「オリンピック」という文字列を検索窓に入力
pyperclip.copy("オリンピック")
pa.hotkey("ctrl", "v")
# エンターキーを押して検索を実行
pa.press("enter")