python+selenium基础篇,句柄操作(多个页面切换)

1、我们打开网页有时候会开出多个页面,导致我们常常定位不到我们需要的元素,这种情况可能就是句柄的因素,如下图所示:

 

 2、句柄切换代码如下:


from selenium import webdriver
from time import sleep

dr=webdriver.Firefox()
dr.get(r"https://home.firefoxchina.cn/")#打开火狐首页
sleep(2)
selen=dr.current_window_handle#获取当前页面(火狐首页)的句柄
ss=dr.find_element_by_css_selector('#site-my-list')
ss.find_element_by_link_text(u"百 度").click()
# dr.switch_to_window(selen)#这个是老式写法,运行会有警告
dr.switch_to.window(selen)#跳转到火狐首页
sleep(2)
dr.find_element_by_link_text("新 浪").click()
sleep(2)
handles=dr.window_handles#获取所有的句柄
for xx in handles:#遍历句柄
dr.switch_to.window(xx)#切换到每次遍历的句柄
if xx.title=="百度一下,你就知道":#判断句柄title是否是“百度一下,你就知道”
break#跳出循环
dr.quit()

 

posted @ 2020-08-19 10:58  菌子石雨  阅读(1005)  评论(0编辑  收藏  举报