この記事では、Pythonで簡単にマウス操作を自動化するPyAutoGUIについて解説しています。
「こんなことが簡単にできるのか~」と思うことでしょう。
本記事の内容
- Pythonでマウス操作を自動化する環境を整える
- PyAutoGUIにおけるマウス操作の基本知識
- PyAutoGUIで対応可能なマウス操作
それでは、上記に沿って解説していきます。
Pythonでマウス操作を自動化する環境を整える
Pythonでマウス操作を自動化するには、PyAutoGUIをインストールする必要があります。
まだ、インストールしていない場合は、次の記事をご覧ください。
簡単にインストールできます。
そして、簡単にPyAutoGUIを使うことが可能です。
次に、マウス操作についての基本を説明します。
実は、あまり意識できていないことかもしれません。
PyAutoGUIにおけるマウス操作の基本知識
マウス操作は、画面ありきということを意識できていますか?
クリックするにしても、単に移動するだけも画面上にマウスカーソルが見えていますよね。
まず、 マウス操作には画面(ディスプレイ)ありきだと認識してください。
基本的なことですが、忘れがちかもしれません。
そして、画面にはサイズがあります。
また、画面には位置(座標)が存在します。
- サイズ
- 座標
上記の2つが、マウス操作では前提となる要素だと意識してください。
基本的なことですが、意外と忘れがちなことです。
これらのことは、PyAutoGUIにおけるマウスの自動化でも前提となります。
0,0 X increases --> +---------------------------+ | | Y increases | | | | 1920 x 1080 screen | | | | V | | | | +---------------------------+ 1919, 1079
サイズと座標が出てきていますね。
サイズとは、範囲とも言えます。
PyAutoGUIの場合、左上が原点(0, 0)となります。
では、みなさんの利用している画面(ディスプレイ)のサイズを表示してみましょう。
PyAutoGUIを使えば、サイズを簡単に表示できます。
import pyautogui display_size = pyautogui.size() print(display_size)
上記Pythonプログラムを実行結果は以下。
Size(width=1920, height=1080)
実際に画面の解像度を確認してみます。
画面の解像度が、先ほどから言っているサイズということになります。
本当にそうなのでしょうか?
では、解像度を変更してみましょう。
1600×900に変更します。
この状態で先ほどのプログラムを実行します。
その結果は、以下。
Size(width=1600, height=900)
「pyautogui.size()」は、解像度を取得する関数だと言い切れますね。
以上より、PyAutoGUIのマウス操作では、サイズと座標が重要な要素だと理解できたはずです。
では、次にPyAutoGUIで扱えるマウス操作を確認します。
PyAutoGUIで対応可能なマウス操作
公式サイトより、次の操作に対応していることがわかります。
https://pyautogui.readthedocs.io/en/latest/mouse.html
- 移動
- ドラッグ
- クリック
- ダウン
- アップ
- スクロール
クリック = ダウン + アップ
上記のように考えれば、イメージしやすいでしょう。
また、クリックにはダブルクリックやトリプルクリックも含みます。
そして、右クリック、左クリックも判別できます。
こうやって見てみると、基本的には何でもできると言えます。
ただ、ここまでの説明から勘違いする人がいるかもしれません。
特に、JavaScriptでマウスイベントなどをガリガリとコーディングしてる人ですね。
PyAutoGUIは、自動化することが主な機能となります。
よって、上記で挙げた操作は、自動で行うマウス操作です。
決して、クリックされた場合の処理を行なうとかではありません。
あくまで、マウスを自動で移動させたり、スクロールさせたり、クリックさせたりするのです。