句柄的获取和切换

问题:

多个窗口时,该如何识别想操作的窗口,操作页面元素呢?

例如点击一个link属性的文字,跳出新窗口,如何定位新窗口以及操作

分析:

代码:

#coding:utf-8
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("http://bj.ganji.com/")
time.sleep(3)
#获取第一个窗口的句柄
handle1=driver.current_window_handle
#打印第一个句柄
print(handle1)
#打印第一个窗口的标题
print(driver.title)
#打印第一个句柄的数据类型
print(type(handle1))

#点击小本创业
driver.find_element_by_link_text(u"小本创业").click()

#获取所有窗口句柄,用列表形式展示
handles=list(driver.window_handles)
print(handles)
#打印所有窗口句柄
print(type(handles))

#获取新窗口的句柄
handle2=handles[1] #获取所有句柄,从0开始,第二个窗口句柄为1

#切换至新窗口
driver.switch_to.window(handle2)
time.sleep(2)
#打印当前窗口的标题
print(driver.title)
#关闭当前的窗口
driver.close()
#返回至第一个窗口上
driver.switch_to.window(handles[0])
time.sleep(2)
#打印当前窗口的标题
print(driver.title)
driver.quit()

 


posted @ 2017-09-16 16:49  女林  阅读(876)  评论(0编辑  收藏  举报