📅  最后修改于: 2023-12-03 15:24:36.211000             🧑  作者: Mango
在使用Selenium for Python进行Web自动化测试时,经常会遇到需要切换到新窗口的情况。本文将介绍如何使用Selenium for Python切换到新窗口。
在切换到新窗口之前,我们需要获取当前窗口的句柄。可以使用current_window_handle
方法获取当前窗口句柄,如下所示:
current_handle = driver.current_window_handle
使用window_handles
方法可以获取所有窗口的句柄,如下所示:
all_handles = driver.window_handles
找到需要切换的新窗口句柄后,使用switch_to.window()
方法可以切换到该窗口,如下所示:
for handle in all_handles:
if handle != current_handle:
driver.switch_to.window(handle)
在上面的代码中,我们使用了一个for循环来遍历所有窗口句柄,如果句柄不等于当前窗口的句柄,则切换到该窗口。
# 导入Selenium库
from selenium import webdriver
# 创建一个Chrome浏览器实例
driver = webdriver.Chrome()
# 打开网站
driver.get('http://www.baidu.com/')
# 获取当前窗口句柄
current_handle = driver.current_window_handle
# 打开新窗口
driver.execute_script("window.open('http://www.qq.com/')")
# 获取所有窗口句柄
all_handles = driver.window_handles
# 切换到新窗口
for handle in all_handles:
if handle != current_handle:
driver.switch_to.window(handle)
# 在新窗口中操作
print(driver.title)
# 切换回旧窗口
driver.switch_to.window(current_handle)
# 在旧窗口中操作
print(driver.title)
# 关闭所有窗口
driver.quit()
在上面的代码中,我们首先打开了一个百度网站的窗口,然后使用JavaScript打开了一个QQ网站的窗口,并获取了所有窗口的句柄。最后,我们使用switch_to.window()
方法切换到了新打开的QQ网站窗口,并在该窗口中打印了页面标题。接着,我们又使用switch_to.window()
方法切换回了旧的百度网站窗口,并在该窗口中打印了页面标题。最后,我们关闭了所有窗口。
以上就是使用Selenium for Python切换到新窗口的方法。