多窗口、句柄(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()