【发布时间】:2015-05-11 11:44:36
【问题描述】:
当我点击一个按钮打开新窗口 我怎么知道窗口打开完成了?
我可以在下面使用等待帧
wait.until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_name('newframe')))
在新窗口中?
【问题讨论】:
当我点击一个按钮打开新窗口 我怎么知道窗口打开完成了?
我可以在下面使用等待帧
wait.until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_name('newframe')))
在新窗口中?
【问题讨论】:
您可以找到当前(之前)窗口句柄的计数并获取窗口句柄之后并实现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 类似主题。
【讨论】: