Pythonいろいろ

python便利!

Python + Selenium を使用した コンテキストメニュー の操作方法

今回はPythonSeleniumを使用して、要素を指定してコンテキストメニューを開き、操作する方法について書きたいと思います。コンテキストメニューとは以下のように右クリックしたときに表示されるメニューです。

 

手順としては以下のとおりです。

①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