【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)