7. 多窗口切换,获取句柄
Posted arcy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7. 多窗口切换,获取句柄相关的知识,希望对你有一定的参考价值。
有时候点击某个链接会打开一个新的窗口,获取窗口的唯一标识用句柄表示,以凤凰网为例:https://v.ifeng.com/
- 获取当前窗口的句柄:driver.current_window_handle
-
获取所有句柄: driver.window_handles
- 切换句柄:driver.switch_to.window()
- 循环判断句柄是否与首页句柄相等
- 如果不相等,则说明是新的页面
- 获取到新的句柄,切换到新打开的页面
- 打印新页面的title,查看是否切换成功
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.ifeng.com/") time.sleep(3) #获取当前窗口的句柄 h=driver.current_window_handle print(h) print (driver.title) #定位视频并打开视频页面,获取所有的句柄 s=driver.find_element_by_css_selector("#nav > li:nth-child(2) > a:nth-child(1)").click() time.sleep(5) #需要增加sleep时间,以确保新窗口打开,获取新的句柄 all_h=driver.window_handles print(all_h) #循环判断句柄是否与首页句柄相等 for i in all_h: if i!=h: #如果不等于首页句柄,则切换到新打开的页面,并打印其title driver.switch_to.window(i) print (driver.title) ‘‘‘ #验证title if u"视频门户" in driver.title: print("页面打开正常") else: print("页面打开失败") ‘‘‘ #关闭窗口 driver.close() #切换到首页 driver.switch_to.window(h) #打印当前窗口句柄,查看是否切回首页 print (driver.current_window_handle)
打印的结果
6442450945 凤凰网 [‘6442450945‘, ‘6442450987‘] 凤凰视频首页-最具媒体价值的视频门户-凤凰网 6442450945
以上是关于7. 多窗口切换,获取句柄的主要内容,如果未能解决你的问题,请参考以下文章