多窗口切换
多窗口切换
思路:获取要切换的窗口句柄,调用切换方法进行切换。
方法:
driver.current_window_handle #获取当前主窗口句柄 driver.window_handles #获取当前由driver启动所有窗口句柄
获取当前窗口句柄 点击链接,启动另一个窗口 获取当前所有窗口句柄 切换窗口操作
1 handles=driver.window_handles #获取当前窗口所有的句柄 2 driver.switch_to.window(handles[索引位置]) #切换到新窗口的句柄,从0开始,第一个窗口就是0,第二个(新)窗口就是1,以此类推
from selenium import webdriver from time import sleep from selenium.webdriver.common.action_chains import ActionChains # 获取浏览器对象 driver = webdriver.Chrome() driver.implicitly_wait(5) driver.maximize_window() # 获取网络链接 url = "https://www.taobao.com/" driver.get(url) handle_1=driver.current_window_handle # 实例化并获取ActionChains类 action = ActionChains(driver) # 定位登录元素 点击 login_el = driver.find_element_by_css_selector(".h").click() #定位忘记密码元素 点击 rset_pwd_el = driver.find_element_by_css_selector(".forgot-password-a-link").click() #切换窗口 handles=driver.window_handles driver.switch_to.window(handles[1]) handle_2=driver.current_window_handle if handle_1==handle_2: print("窗口未切换成功") else: pass print(driver.current_url) driver.quit()