selenium里面处理多窗口场景:
1. 多个窗口识别
2. 多个窗口之间切换
多窗口处理:
出现原因:点击某些链接,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口
操作:获取窗口的唯一标识用句柄表示,所以只需要切换句柄,就鳄鱼在多个页面灵活操作了
多窗口处理流程:
1. 先获取到当前的窗口句柄(driver.current_window_handle)
2. 再获取到所有的窗口句柄(driver.window_handles)
3. 判断是有事想要操作的窗口,如果是,就可以对窗口进行操作,如果不是,跳转到另外一个窗口,对另一个窗口进行操作(driver.switch_to_window)
举例:
def test_switchwindows(self):
# 进入百度页面
self.driver.get('https://www.baidu.com/')
# 点击登录按钮
self.driver.find_element_by_link_text("登录").click()
# 输出当前页面句柄
print(self.driver.current_window_handle)
# 点击弹窗内立即注册
self.driver.find_element_by_link_text("立即注册").click()
# 获取当前页面句柄
print(self.driver.current_window_handle)
# 获取全部窗口句柄
print(self