多窗口、句柄(handle)(四)

1、认识多窗口

  • 有的页面的链接打开后,会重新打开浏览器的一个标签,若是想在新的窗口上操作,就要先切换窗口
  • 获取窗口的唯一标识就是句柄,只要切换到对应的宽口句柄上就能操作了
  • 实际场景,如赶集网,点击工作时候会多出一个窗口

2、句柄操作

  • 元素有属性的,窗口也是有属性,只是看不到而已,浏览器的属性使用handle来识别
  • 获取当前窗口的句柄:driver.current_window_handle
  • 获取所有窗口句柄:window_hadnle
  • 切换窗口:driver.switch_to.window()
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://sh.ganji.com/")
driver.implicitly_wait(5)
handle1 = driver.current_window_handle
print("当前窗口句柄"+handle1)
print(driver.title)

driver.find_element_by_xpath('//a[@href="zhaopin/"]/span[1]').click()

#获取到的所有句柄是个列表,通过列表元素下标进行切换
handles = driver.window_handles
print("所有窗口句柄"+handles)

#切换窗口
driver.switch_to.window(handles[1])
current_handle = driver.current_window_handle
print("当前窗口句柄"+current_handle)
print(driver.title)
#关闭当前窗口
driver.close()
time.sleep(2)
#结束浏览器的进程
driver.quit()
原文地址:https://www.cnblogs.com/ygzy/p/9558913.html