以前キーボード入力の判定方法については以下のような過去の記事で紹介しましたが、今回はpyautoguiというライブラリを使用してキーボード入力する方法の紹介になります。
目次
環境はWindows環境でPython3でやっています。
1.pyautoguiのインストール
pyautoguiのインストールはコマンドプロンプトで以下のようなコマンドを実行することでできます。
pip install pyautogui
Python3.4以上なら標準で付属しています。
インストールされているかどうかの確認はコマンドプロンプトで「pip list」と実行することで確認できます。
>pip list Package Version ------------------------- --------- packaging 21.3 pandas 1.4.1 pip 22.0.3 PyAutoGUI 0.9.53 pyinstaller 5.1
2.キーボード入力(文字入力)
pyautoguiでキーボード入力する場合には、write()を使用します。
以下の例では「abc」と入力できます。
pyautogui.write("abc")
実際に、yahooの検索画面で検索キーとして入力してみる場合には、たとえば、以下のように入力します。
from selenium import webdriver from selenium.webdriver.chrome import service as fs import os import pyautogui path_driver = os.getcwd()+'\chromedriver.exe' # ドライバー指定でChromeブラウザを開く chrome_service = fs.Service(executable_path=path_driver) driver = webdriver.Chrome(service=chrome_service) #指定したURLに遷移する driver.get('https://www.yahoo.co.jp/') pyautogui.write("abc")
これにて、yahooの検索画面に「abc」と入力されます。
入力と入力の間隔をあける場合には、「interval」を指定します。
先程の入力内容を若干変更して、
from selenium import webdriver from selenium.webdriver.chrome import service as fs import os import pyautogui path_driver = os.getcwd()+'\chromedriver.exe' # ドライバー指定でChromeブラウザを開く chrome_service = fs.Service(executable_path=path_driver) driver = webdriver.Chrome(service=chrome_service) #指定したURLに遷移する driver.get('https://www.yahoo.co.jp/') pyautogui.write("abc") pyautogui.write("def", interval=3.0) pyautogui.write("ghi")
とすると、yahooの検索画面に連続して「abcdefghi」と入力されますが、「def」のwriteの時に「interval=3.0」と指定しているので、「d」と「e」、「e」と「f」、「f」と「g」の間がそれぞれ3秒ずつ待って入力されます。
3.キーボード入力(特殊キー入力)
「enter」、「escape」などの特殊キーを入力したい場合には、press()を使用します。
以下の例では「enter」キーがクリックされます。
pyautogui.press("enter")
以下の例では、yahooの検索画面に「abc」と打って「enter」キーがクリックされますので検索結果が表示されます。
その後、5秒待ってウインドウが閉じられます。
from selenium import webdriver from selenium.webdriver.chrome import service as fs import os import pyautogui import time path_driver = os.getcwd()+'\chromedriver.exe' # ドライバー指定でChromeブラウザを開く chrome_service = fs.Service(executable_path=path_driver) driver = webdriver.Chrome(service=chrome_service) #指定したURLに遷移する driver.get('https://www.yahoo.co.jp/') pyautogui.write("abc") pyautogui.press("enter") time.sleep(5) # タブを閉じる driver.close() driver.quit()
特殊キーとしては、
「enter」、「escape」、「shift」、「space」、「del」、「alt」、「backspace」、「up」、「down」、「left」、「right」
などがあります。
下記にて、使用可能なキーを確認することもできます。
print(pyautogui.KEYBOARD_KEYS)
4.キーボード入力(キーの同時入力)
キーの同時入力を行いたい場合には、hotkey()を使用します。
hotkey()のカッコ内に同時入力したいキーを並べていきます。
以下の例では「ctrl」キーと[c]キーの同時クリックをしています。
pyautogui.hotkey("ctrl", "c")
これと同様の内容はkeyDown()、keyUp()を使用して以下でも実現できます。
「keyDown」はキーをクリックして押したままにする操作で、「keyUp」はキーを離す操作です。
pyautogui.keyDown("ctrl") pyautogui.keyDown("c") pyautogui.keyUp("c") pyautogui.keyUp("ctrl")
以上が、pyautoguiによるキーボード操作、キー入力の説明になります。
関連記事:
【Python】おすすめ学習本ランキング8選 - Django Girls and Boys 備忘録
【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録
【Python】keyboardライブラリでのキー入力検出に使用可能なキーの種類 - Django Girls and Boys 備忘録
【Python】Python、Selenium関連情報一覧(ダウンロード、インストール手順、各種やり方、使い方など) - Django Girls and Boys 備忘録
【Python】pipのバージョン確認、インストールとアップデート方法 - Django Girls and Boys 備忘録
【Python】range、break、continue、スライスによる範囲指定などfor文の基本的な使用方法 - Django Girls and Boys 備忘録
【Python】スライスによる範囲指定などスライスの使用方法 - Django Girls and Boys 備忘録
【Python Selenium】各ブラウザ用のドライバーを自動アップデートする方法 - Django Girls and Boys 備忘録
【Python Selenium】Pythonで行うproxy環境設定方法 - Django Girls and Boys 備忘録
【PythonからWeb操作】seleniumのインストール手順 - Django Girls and Boys 備忘録
【PythonによるExcelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまでの一通りすべての方法 - Django Girls and Boys 備忘録
【Python】pyautoguiを使用したマウスの操作方法 - Django Girls and Boys 備忘録
【Python】pyautoguiによるキーボード操作、キー入力方法 - Django Girls and Boys 備忘録
【Python】Seleniumで新しいタブを開く方法 - Django Girls and Boys 備忘録
【Python】CSVファイルからのデータの読み込み方法 - Django Girls and Boys 備忘録
【Python】CSVファイルへのデータの書き込み方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウ表示時などでのWaitの方法、待機方法 - Django Girls and Boys 備忘録