【Python】seleniumで新規ウィンドウのハンドルを取得

Pythonでのseleniumネタです。

新しく開いたウィンドウのハンドルを取得

from time import sleep
from selenium import webdriver

def chrome():
    options = webdriver.ChromeOptions()
    options.binary_location = "/path/chrome"
   
    driver = webdriver.Chrome(
        executable_path="/path/chromedriver",
        chrome_options=options
    )
    return driver

driver = chrome()
#対象のウェブページを開く
driver.get("https://xxxxxxx")
# 現在のWindowハンドルの一覧を取得
wh_before = window_handles()

# 何かしらの新規ウィンドウを開くような操作を実行

sleep(1)
# 新規Windowを開いたあとのWindowハンドル一覧を取得
wh_after = window_handles()
# Windowハンドル一覧の比較を行い、新規で開いたWindowのハンドルを取得
new_window = set(wh_after).difference(set(wh_before)).pop()
# 新規Windowに切り替え
driver.switch_to.window(new_window)



参考


いいなと思ったら応援しよう!