Seleniumを使用してウェブブラウザを自動化する際、新しいウィンドウやタブを開く必要がある場合があります。この記事では、PythonのSeleniumライブラリを使用して、新しいウィンドウやタブを開く方法について詳しく説明します。
参考書籍
業務効率化に向けたおすすめの参考書になります。
リンク
リンク
コード表
<コード>
新しいウィンドウまたはタブを開く方法
PythonのSeleniumでは、driver.execute_script()メソッドを使用してJavaScriptを実行することで新しいウィンドウやタブを開くことができます。以下は、新しいタブを開く例です。
from selenium import webdriver
# 新しいウィンドウまたはタブを開く
driver.execute_script("window.open('about:blank', '_blank');") # 新しいタブを開く場合
# driver.execute_script("window.open('about:blank', '_blank', 'noopener,noreferrer');") # 新しいウィンドウを開く場合
# 新しいウィンドウまたはタブで何かを実行する場合は、driver.switch_to.window()を使用して移動することができます
# WebDriverを終了しないで、必要に応じて追加の操作を行うこともできます
新しいウィンドウまたはタブの操作
新しいウィンドウやタブを開いた後、そのウィンドウやタブを操作するためには、driver.switch_to.window()
メソッドを使用してウィンドウまたはタブを切り替える必要があります。
# 新しいウィンドウまたはタブに切り替える
driver.switch_to.window(driver.window_handles[1])
ちなみに、ブラウザポートやセッションを指定して開くことを入れる場合は以下の通り。
from selenium import webdriver
# 既存のブラウザセッションに接続するためのセッションIDとポート番号
session_id = '既存のブラウザセッションのセッションIDを指定'
port = 9222 # 既存のブラウザセッションが使用しているポート番号を指定
# 既存のブラウザセッションに接続
options = webdriver.ChromeOptions()
options.debugger_address = f'localhost:{port}'
driver = webdriver.Chrome(options=options)
# 新しいウィンドウまたはタブを開く
driver.execute_script("window.open('about:blank', '_blank');") # 新しいタブを開く場合
# driver.execute_script("window.open('about:blank', '_blank', 'noopener,noreferrer');") # 新しいウィンドウを開く場合
# 新しいウィンドウまたはタブで何かを実行する場合は、driver.switch_to.window()を使用して移動することができます
# WebDriverを終了しないで、必要に応じて追加の操作を行うこともできます
コメント