python selenium webdriver打开新窗口句柄等待

时间:2015-05-08 05:02:58

标签: python selenium-webdriver

当我点击按钮打开新窗口时 我如何知道窗口打开完成?

在等待框架中我可以使用下面的

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

在新窗口中?

1 个答案:

答案 0 :(得分:1)

您可以找到当前(之前)窗口句柄的计数并获取窗口句柄并实现lambda以等待它们 NOT 相等。我不熟悉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