You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的Selenium WebDriver切换至新标签页执行操作?

切换Selenium至新标签页的解决方法

当点击按钮触发新标签页打开后,Selenium不会自动切换上下文,需要手动管理窗口句柄来完成切换,具体操作步骤如下:

  • 步骤1:记录原窗口句柄
    在执行点击操作前,先获取当前活动窗口的句柄,方便后续需要切回原窗口时使用:

    original_window = driver.current_window_handle
    
  • 步骤2:执行点击操作
    点击打开新标签页的目标按钮:

    driver.find_element(By.ID, "target-button-id").click()
    
  • 步骤3:切换到新标签页
    等待新标签页加载完成后,获取所有窗口的句柄列表,切换到非原窗口的句柄:

    # 等待新窗口加载完成(推荐添加,避免切换失败)
    WebDriverWait(driver, 10).until(
        lambda d: len(d.window_handles) > 1
    )
    # 遍历句柄列表,切换到新窗口
    for window_handle in driver.window_handles:
        if window_handle != original_window:
            driver.switch_to.window(window_handle)
            break
    
  • 步骤4:操作新标签页内容
    切换完成后,即可正常操作新标签页内的元素,比如填写表单:

    driver.find_element(By.NAME, "form-input").send_keys("content")
    
  • 可选:切回原窗口
    如果后续需要回到原标签页,直接调用保存的原句柄切换:

    driver.switch_to.window(original_window)
    

注意事项:

  • 需提前导入必要模块:from selenium.webdriver.support.ui import WebDriverWait、from selenium.webdriver.common.by import By
  • 若新标签页加载较慢,必须添加等待逻辑,避免因窗口未完全初始化导致切换失败

内容的提问来源于stack exchange,提问作者Matheus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:15:38