【Python】Selenium:ダブルクリックを実行する(Action Chains)
2021.08.14 /
本記事ではPythonのSeleniumを使用した、ダブルクリックを実行する方法について解説していきます。
Seleniumを用いることでブラウザを自由に操作することができます。
この機能を駆使してWebページを操作して、作業の自動化やデータ収集の自動化などを実現できます。
基本的なSeleniumの使用方法については以下記事をご参照ください。
【Python】Selenium:ブラウザ操作して静的・動的(Ajax、javascript)ページから情報を取得
Seleniumでダブルクリックを行うには少し特殊な方法を取ります。
本記事を通してSeleniumでダブルクリックを行う方法を覚えてください。
Seleniumでダブルクリックを行う方法
Seleniumで単にクリックをする場合は、WebElementオブジェクトに対してclick()メソッドを使用します。
element.click()
そのためダブルクリックであればclick()メソッドを2回繰り返せば実現できると初めは考えました。
しかし私が操作していたWebアプリケーションではclick()2回をダブルクリックと検知してくれませんでした。
そこで使用したのがAction Chainsです。
Action Chainsを使うことで、Webアプリケーションに検知されるダブルクリックを行うことができました。
Action Chainsでダブルクリックを行う
Action Chainsとは
Action Chainsはマウス操作やキーの押下といった操作の自動化に使われます。
これによりホバーやドラッグアンドドロップといった複雑な操作を可能にします。
Action Chainsは高度なスクリプトで使用され、WebサイトのDOMを操作します。
Action Chainsには様々なメソッドが存在します。
ここでは要素をダブルクリックするメソッドの使い方を解説します。
Action Chainsのインポート
Action Chainsオブジェクトを生成するために、selenium.webdriverからActionChainsをインポートします。
from selenium.webdriver.common.action_chains import ActionChains
Action Chainsオブジェクトの生成
Action Chainsオブジェクトを生成するために、ActionChains()を使用します。
またActionChains()の引数にはWebdriverオブジェクトを指定します。
driver = webdriver.Chrome(executable_path='chromedriver.exe', chrome_options=options)
actionChains = ActionChains(driver)
ダブルクリックを実行する
要素に対してダブルクリックする場合は、生成したAction Chainsオブジェクトに対してdouble_click()メソッドを使用します。
double_click(args)
argsにはダブルクリックする要素のWebElementオブジェクトを指定します。
以下に要素をダブルクリックするサンプルコードを記します。
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome(executable_path='chromedriver.exe', chrome_options=options)
actionChains = ActionChains(driver)
webelement= driver.find_element_by_css_selector('#office54 ')
actionChains.double_click(webelement).perform()
まとめ
本記事「【Python】Selenium:ダブルクリックを実行する(Action Chains)」はいかがでしたか。
Seleniumでブラウザの自動化を長年行っていると、ダブルクリックが必要になる場面に何度か出くわしました。
まだ必要な場面に出くわしてない方も、覚えておいて損はありませんし、Action Chainsの使い方をマスターして様々なことに応用するなど工夫してみてください。