【Python】Selenium×ActionChainsによるキーボード操作|Webブラウザ上の作業自動化

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • PythonとSeleniumによるブラウザ自動操作自動化に興味がある
  • SeleniumのActionChains関数を用いてキーボード操作を実現したい
目次

【Python】Selenium(セレニウム)とは

Seleniumとは、Webブラウザを起動し操作自動化を実現できるPythonモジュールです。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.TABTabキーを実行する。

代表的なショートカットキー操作

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】Seleniumとは?Webブラウザ操作の基礎
【Python】Seleniumで自動ログイン機能の実装
【Python】Selenium×ActionChainsによるキーボード操作
【Python】Seleniumでスマホ版Web画面を操作・エミュレーション(モバイルリモート操作)
【Python操作事例】Seleniumを用いたInstagramのブラウザ自動操作(事例:ログイン・フォロー解除)
【Python操作事例】ポイ活サイトの案件情報を自動取得

【参考】Pythonで面倒な作業を自動化!手法一挙公開中!

当サイトでは日々面倒な作業をPythonで自動化する方法を多数配信しております。日々の作業が飛躍的効率化できること間違いなしですので、以下気になった記事があれば併せてご覧ください。

【面倒なタスクをPythonで解決!】作業効率化の人気記事一覧




【参考】Pythonとは?・実現できること

最後に

この記事が気に入ったら
フォローしてね!

目次