こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- PythonとSeleniumによるブラウザ自動操作自動化に興味がある
- SeleniumのActionChains関数を用いてキーボード操作を実現したい
【Python】Selenium(セレニウム)とは
Seleniumとは、Webブラウザを起動し操作自動化を実現できるPythonモジュールです。Seleniumを用いると、例えばブラウザ上のフォーム記入、マウスクリック、ブラウザ画面遷移という操作が自動化可能です。
Seleniumの概要や基礎的なコーディング方法についてはこちらの記事で詳しく解説しています。
【Python】Seleniumとは?Webブラウザ操作の自動化方法を徹底解説
PythonでWebブラウザの自動操作を実現したい方向けに「Seleniumの概要」「Seleniumの利用手順」について詳しく解説します。
【参考】Selenium学習におすすめの教材
Seleniumによるブラウザ操作について詳しく学習したい方向けにおすすめの教材をご紹介します。
【Selenium】ActionChainsによるキーボード操作
本記事では、SeleniumのActionChains
関数を活用し、 Webブラウザ上でのキーボード操作実現方法について解説します。
プログラムのひな型
PythonからSeleniumライブラリを呼び出し、ActionChain関数でキーボード操作を実現する場合、以下のひな型コードを用います。キーボード操作の際は、Keys
メソッドを併せて用いるのが特徴です。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains
from webdriver_manager.chrome import ChromeDriverManager
# =====================================================
# ブラウザ起動
# =====================================================
# ブラウザ起動
browser = webdriver.Chrome(ChromeDriverManager().install())
# 指定のブラウザを開く
browser.get("https://www.xxxx.xxx.xxx.com")
# =====================================================
# キーボード操作実行
# =====================================================
# Actionchains定義
act = ActionChains(browser)
# キーボード操作を指定(例:Enterキーを押下)
act.key_down(Keys.ENTER)
# キーボード操作を実行
act.perform()
代表的なキーボード操作
代表的なキーボード操作一覧をKeys
メソッドと併せて示します。
メソッド | 説明 |
---|---|
Keys.DOWN Keys.UP Keys.LEFT Keys.RIGHT | 矢印のキーを実行する。 |
Keys.ENTER Keys.RETURN | Enter, Returnキーを実行する。 |
Keys.HOME Keys.END | HOME, ENDキーを実行する。 |
Keys.PAGE_DOWN Keys.PAGE_UP | ページアップ・ダウンキーを実行する。 |
Keys.F1 Keys.F2 ・・・ Key.F12 | F1〜F12キーを実行する。 |
Keys.TAB | Tabキーを実行する。 |
代表的なショートカットキー操作
ActionChainsを用いると、ショートカットキーの実行も可能です。以下、よく用いる操作を示します。
メソッド | 説明 |
---|---|
【Mac】 key_down(Keys.COMMAND).send_keys(“a”) 【Windows】key_down(Keys.CONTROL).send_keys(“a”) | 全選択 |
【Mac】 key_down(Keys.COMMAND).send_keys(“c”) 【Windows】key_down(Keys.CONTROL).send_keys(“c”) | コピー |
【Mac】 key_down(Keys.COMMAND).send_keys(“v”) 【Windows】key_down(Keys.CONTROL).send_keys(“v”) | 貼り付け |
【Mac】 key_down(Keys.COMMAND).send_keys(“x”) 【Windows】key_down(Keys.CONTROL).send_keys(“x”) | 切り取り |
【Python実践】Selenium × ActionChainsによるキーボード操作
以下、Pythonプログラム例を示します。直接実行し、操作イメージを深めていきましょう。
【事前準備】Pythonライブラリ呼出・ Webブラウザ起動
はじめに、必要なPythonライブラリを呼び出し、Webブラウザを起動しておきます。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains
from webdriver_manager.chrome import ChromeDriverManager
# =====================================================
# ブラウザ起動
# =====================================================
# ブラウザ起動
browser = webdriver.Chrome(ChromeDriverManager().install())
# 指定のブラウザを開く
browser.get("https://www.xxxx.xxx.xxx.com")
【キーボード操作】ENTERキーを押下
掲題に示すキーボード操作には、以下のコードを実行します。
# =====================================================
# キーボード操作実行
# =====================================================
# Actionchains定義
act = ActionChains(browser)
# キーボード操作を指定
act.key_down(Keys.ENTER)
# キーボード操作を実行
act.perform()
【キーボード操作】画面を下にスクロール(ページダウン)
掲題に示すキーボード操作には、以下のコードを実行します。
# =====================================================
# キーボード操作実行
# =====================================================
# Actionchains定義
act = ActionChains(browser)
# キーボード操作を指定
act.key_down(Keys.PAGE_DOWN)
# キーボード操作を実行
act.perform()
【キーボード操作】Tabキーを実行
掲題に示すキーボード操作には、以下のコードを実行します。
# =====================================================
# キーボード操作実行
# =====================================================
# Actionchains定義
act = ActionChains(browser)
# キーボード操作を指定
act.key_down(Keys.TAB)
# キーボード操作を実行
act.perform()
【キーボード操作】コピー&ペースト
指定のブラウザ上の文章等をコピーし、ペーストする場合、以下のコードを用います。
MACの場合
# =====================================================
# キーボード操作実行①
# =====================================================
# Actionchains定義
act = ActionChains(browser)
# ★キーボード操作を指定(コピー)
act.key_down(Keys.COMMAND).send_keys("c")
# キーボード操作を実行
act.perform()
# =====================================================
# キーボード操作実行②
# =====================================================
# ペーストしたい場所の要素を指定
target = browser.find_element_by_xx("xxx要素xxx")
# ターゲットにカーソルを合わせる
target.send_keys("")
# ★キーボード操作を指定(ペースト)
act.key_down(Keys.COMMAND).send_keys("v")
# キーボード操作を実行
act.perform()
Windowsの場合
# =====================================================
# キーボード操作実行①
# =====================================================
# Actionchains定義
act = ActionChains(browser)
# ★キーボード操作を指定(コピー)
act.key_down(Keys.CONTROL).send_keys("c")
# キーボード操作を実行
act.perform()
# =====================================================
# キーボード操作実行②
# =====================================================
# ペーストしたい場所の要素を指定
target = browser.find_element_by_xx("xxx要素xxx")
# ターゲットにカーソルを合わせる
target.send_keys("")
# ★キーボード操作を指定(ペースト)
act.key_down(Keys.CONTROL).send_keys("v")
# キーボード操作を実行
act.perform()
【参考】Python×Selenium関連記事
当サイトでは、Seleniumに関する記事を多数配信しております。
【参考】Pythonで面倒な作業を自動化!手法一挙公開中!
当サイトでは日々面倒な作業をPythonで自動化する方法を多数配信しております。日々の作業が飛躍的効率化できること間違いなしですので、以下気になった記事があれば併せてご覧ください。
【面倒なタスクをPythonで解決!】作業効率化の人気記事一覧
【参考】Pythonとは?・実現できること
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら