Python + Selenium を使用した コンテキストメニュー の操作方法
今回はPythonのSeleniumを使用して、要素を指定してコンテキストメニューを開き、操作する方法について書きたいと思います。コンテキストメニューとは以下のように右クリックしたときに表示されるメニューです。
手順としては以下のとおりです。
①URLにアクセスする
②要素を指定する
③右クリックし、コンテキストメニューを表示する
④キーボード操作信号でコンテキストメニュを操作する
⑤別タブで画像のリンク先を開く
webdriverの機能では操作できなさそうなので、pyautoguiを使用して
キーボード入力を使用して操作しています。
ソースコードに説明を載せています。CHROME_DRIVER変数を自身の環境のものに変更すればコピペで使用できます。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import pyautogui
import time
#CHROME_DRIVERには自分でダウンロードしてきたChrome Driver(実行環境のGoogle Chromeと同じバージョンのドライバーを使用する必要があります。)のパスを指定してください
CHROME_DRIVER=r"C:\Users\user\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe"
ACCESS_URL=r"https://various-python.hatenablog.com/entry/2021/07/11/003749"
service = Service(executable_path=CHROME_DRIVER)
driver = webdriver.Chrome(service=service)
driver.implicitly_wait(10)#要素を取得する最大待機時間
driver.get(ACCESS_URL)#ページにアクセス
#画像要素の取得
img_element=driver.find_element(By.TAG_NAME,'img')
#コンテキストメニューを操作
time.sleep(1)
ActionChains(driver).context_click(img_element).perform()#右クリック
time.sleep(1)
pyautogui.press("down")#キーボード入力 ↓
time.sleep(1)
pyautogui.press("down")#キーボード入力 ↓
time.sleep(1)
pyautogui.press("enter")#キーボード入力 enter