【问题标题】:python selenium webdriver open new window handle waitpython selenium webdriver 打开新窗口句柄等待
【发布时间】:2015-05-11 11:44:36
【问题描述】:

当我点击一个按钮打开新窗口 我怎么知道窗口打开完成了?

我可以在下面使用等待帧

wait.until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_name('newframe')))

在新窗口中?

【问题讨论】:

    标签: python selenium-webdriver


    【解决方案1】:

    您可以找到当前(之前)窗口句柄的计数并获取窗口句柄之后并实现lambda 以等待它们相等。我不熟悉Selenium 机制中的此类/类似构建。

    def wait_for_new_window(driver, timeout=10):
            handles_before = driver.window_handles
            yield
            WebDriverWait(driver, timeout).until(
                lambda driver: len(handles_before) != len(driver.window_handles))
    

    请参阅此answer 类似主题。

    【讨论】: