selenium3基于python语言基础操作之多窗口切换handle/获取所有句柄/切换句柄



# 多窗口切换 handle
# current_window_handle 获取当前窗口句柄(handle)
# window_handles 获取所有的句柄
# switch_to.window() 切换句柄
# close() 关闭其中一个句柄。点击窗口中的某个功能跳转到新的窗口页面 每个窗口都有唯一的id

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://49.xxx.xx.xx:8000/user/")

time.sleep(3)

# 获取当前页面句柄
handle = driver.current_window_handle
print(handle)

# target='_blank' 如果出现这个属性 说明会跳转到一个新的窗口
# 点联系我们 按钮 打开新窗口
driver.find_element_by_link_text("[联系我们]").click()
time.sleep(5)
print(driver.current_window_handle) # 打开新的窗口的句柄id还是旧的
handles = driver.window_handles # 取出所有窗口的handle
print(handles) # 返回的是一个list 取出第二个就是我们需要的第二个窗口的句柄
print(handles[1]) # 正着数第二个 倒着数第一个print(handles[-1])

# 根据handle id切换窗口
driver.switch_to.window(handles[1])

# 怎么知道是否切换成功? 打印当前的url 地址
print(driver.current_url)

# 关闭切换后窗口
driver.close()

# 窗口关闭后需要切换到原来窗口的句柄
driver.switch_to.window(handle)
print(driver.current_url)

driver.quit()