在web测试过程中,经常会打开多个窗口,selenium无法直接对新页面元素进行定位,需要切换窗口操作。
在web应用中,每一个窗口都有一个对应的唯一句柄来进行标识,如果我们切换窗口,则只需要获取新窗口的句柄,然后切换句柄即可。
获取当前句柄:driver.current_window_handle
获取所有句柄:driver.window_handles
切换句柄:driver.switch_to.window(句柄号)或者driver.switch_to_window(句柄号)
示例:以hao123网站为例,点击超链接hao123推荐,并单击娱乐板块。
# coding = utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.hao123.com/')
# 获取当前窗口句柄
current_handle = driver.current_window_handle
print(current_handle)
# 单机超链接
driver.find_element_by_link_text('hao123推荐').click()
# 获取所有窗口句柄
handles = driver.window_handles
print(handles)
# 切换到新窗口
driver.switch_to.window(handles[1])
driver.find_element_by_link_text('娱乐').click()
print(driver.current_window_handle)
driver.quit()