
正文
Selenium-多窗口处理
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
弹出新的窗口,该如何处理
1.获取当前窗口句柄
2.元素的操作,打开新的窗口
3.获取所有窗口句柄
4.for循环遍历所有窗口,定位到需要操作的窗口上
和你当前句柄不一样的就说明是新的,通过打印title来判断
实例:打开了新的窗口
'''
多窗口处理
访问火狐主页,之后再新窗口访问微博
'''
#! /usr/bin/env python
#coding=utf-8 from selenium import webdriver
import time '''
多窗口处理
访问火狐主页,之后再新窗口访问微博
'''
driver = webdriver.Firefox()
driver.get("http://i.firefoxchina.cn/?from=worldindex")
#driver.maxmize_window() #获取当前窗口句柄
curr_handle = driver.current_window_handle
print("curr_handle=",curr_handle)
time.sleep(5) #新打开的窗口
driver.find_element_by_link_text("微 博").click() #获取所有窗口句柄
all_handles = driver.window_handles #遍历所有窗口句柄,和你当前句柄不一样的就说明是新的,通过打印title来判断
for h in all_handles:
if h != curr_handle:
#跳转到h窗口
driver.switch_to_window(h)
#获取到新窗口的句柄
curr_handle = driver.current_window_handle
print("curr_handle=",curr_handle) time.sleep(5) driver.quit()
结果:
curr_handle= {5a0d739b-6d2f-4130-b3fd-c8c04a7bf89b}
curr_handle= {b7957d2c-7682-4095-85bb-2a500d472bcc}






