別Windowが閉じたのを感知する
「ボタンクリックで別ウィンドウを開き、処理が終わったところでウィンドウが閉じる」といった処理を自動化したくなり、別Windowが閉じたのを感知する処理を調査しました。
実装方法:別ウィンドウ内の要素の存在が無くなったことを感知する
別ウィンドウ内の要素として常に表示されているものをdriver.find_element_by_nameし続けて、初回以降に取得に失敗するまで繰り返すことで、ウィンドウが消えたことを感知できました。
actionModule.py
from selenium.webdriver.chrome.webdriver import WebDriver
def waitForWindowToBeClosed(driver:WebDriver, targetWindowIndex=1,nameAsMarkWindowExisting:str):
driver.switch_to.window(driver.window_handles[targetWindowIndex])
driver.find_element_by_name(nameAsMarkWindowExisting)
while True:
try:
driver.find_element_by_name(nameAsMarkWindowExisting)
except Exception:
break
driver.switch_to.window(driver.window_handles[0])
これで別windowが閉じるまで待つ処理が実装出来ました。
以上です。