自动化访问浏览器,有时候会遇到打开新窗口的情况,这个时候就会出现切换窗口的问题
1、比如通过浏览器窗口的title来切换
#封装的代码
def change_window(self, title):
for windows in self.driver.window_handles: # 循环切换窗体
self.driver.switch_to.window(windows)
if self.driver.title == title:
break
使用方式:
# 切换窗口,直接传要切换窗口的title,就能切换过去,
# 在新的python页面导入封装好的切换方式,bo是我常用的命名方式
self.bo.change_window('新增客户信息')
# 调用bo中的封装好的change_window方法,传'新增客户信息',浏览器就会切换到这个窗口
第一种方式比较简单,但是,可能会遇到,浏览器窗口的title一样的情况,这时候就有第二种,通过获取浏览器句柄的方式,来切换浏览器窗口,每个浏览器窗口的句柄,都是唯一的,这样切换的话,就不会出现上面的情况。
2、通过获取浏览器句柄的方式来切换浏览器
from selenium import webdriver
driver = webdriver.Chrome()
# 获取当前页面的handle
handle = driver.current_window_handle
# 获取所有窗口的句柄
handles=driver.window_handles
for i in handles :
#如果当前的页面句柄不等于循环的句柄,就切换过去
if handle != i :
driver.switch_to.window(i)
break