Pythonのseleniumでウインドウを切り替える方法

PythonのSeleniumを使用してウィンドウを切り替える方法はいくつかありますが、一般的な方法は次の2つです。

  1. ウィンドウハンドルを使用する方法:
    ウィンドウハンドルを使用して、異なるウィンドウ間を切り替えることができます。ウィンドウハンドルはウィンドウを一意に識別するための識別子です。

    以下は、ウィンドウハンドルを使用してウィンドウを切り替える基本的なステップです。

    python
    from selenium import webdriver
    
    # WebDriverを起動
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
    
    # 最初のウィンドウを開く
    driver.get('https://www.example.com')
    
    # 現在のウィンドウハンドルを取得
    original_window = driver.window_handles[0]
    
    # 新しいウィンドウを開く(例:リンクをクリックして)
    driver.execute_script("window.open('https://www.example2.com', '_blank');")
    
    # 新しいウィンドウハンドルを取得
    new_window = driver.window_handles[1]
    
    # ウィンドウを切り替える
    driver.switch_to.window(new_window)
    
    # 新しいウィンドウで何か操作を行う
    
    # ウィンドウを切り替えて元のウィンドウに戻る
    driver.switch_to.window(original_window)
    
    # ドライバーを閉じる
    driver.quit()
    
  2. ウィンドウのハンドルを使わずにウィンドウを切り替える方法:
    ウィンドウハンドルを使用せずに、ウィンドウのタイトルやURLを使用してウィンドウを切り替えることもできます。

    以下は、ウィンドウのタイトルを使用してウィンドウを切り替える例です。

    python
    from selenium import webdriver
    
    # WebDriverを起動
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
    
    # 最初のウィンドウを開く
    driver.get('https://www.example.com')
    
    # 新しいウィンドウを開く(例:リンクをクリックして)
    driver.execute_script("window.open('https://www.example2.com', '_blank');")
    
    # 新しいウィンドウに切り替える
    for window_handle in driver.window_handles:
        driver.switch_to.window(window_handle)
        if 'Example 2' in driver.title:  # タイトルに合わせて条件を変更
            break
    
    # 新しいウィンドウで何か操作を行う
    
    # ウィンドウを切り替えて元のウィンドウに戻る
    driver.switch_to.window(driver.window_handles[0])
    
    # ドライバーを閉じる
    driver.quit()
    

どちらの方法でも、ウィンドウ間を切り替えることができます。選択した方法に合わせて、ウィンドウハンドルを使用するかウィンドウのタイトルやURLを使用するかを選択してください。