Python+webdriver脚本之多窗口切换新解
#-*-coding:utf-8-*-
from selenium import webdriver
import time
x = webdriver.Chrome()
x.maximize_window()
x.get("http://www.hao123.com")
x.find_element_by_link_text("人民网").click()
x.find_element_by_link_text("新华网").click()
x.find_element_by_link_text("中国日报").click()
x.find_element_by_link_text("光明网").click()
handles = x.window_handles#获取所有窗口句柄
x.switch_to.window(handles[0])#切换到索引为0的窗口句柄,注意:hao123的句柄索引为0
print(x.title)
x.switch_to.window(handles[1])#切换到句柄索引为1的窗口,注意:最后打开的窗口句柄索引为1,中间依次类推
print(x.title)
x.switch_to.window(handles[2])#切换到句柄索引为2的窗口
print(x.title)
x.switch_to.window(handles[3])#切换到句柄索引为3的窗口
print(x.title)
x.switch_to.window(handles[4])#切换到句柄索引为4的窗口
print(x.title)
x.close()#此处关闭了切换到的句柄索引为4的窗口
x.switch_to.window(handles[0])#切换到索引为0的窗口句柄
print(x.title)
x.switch_to.window(handles[3])#切换到句柄索引为3的窗口
print(x.title)
x.switch_to.window(handles[2])#切换到句柄索引为2的窗口
print(x.title)
x.switch_to.window(handles[1])#切换到句柄索引为1的窗口
print(x.title)
'''
关闭索引号为4的窗口页签,并未对下面打印0-3的页签产生影响
'''
x.close()#此处关闭的是切换到的句柄索引为1的窗口
x.switch_to.window(handles[0])#切换到索引为0的窗口句柄
print(x.title)
x.switch_to.window(handles[2])#切换到句柄索引为2的窗口
print(x.title)
x.switch_to.window(handles[3])#切换到句柄索引为1的窗口
print(x.title)
'''
注意:上面取的是handles中的索引,handles中的索引号有0-4,关闭
索引号为4的窗口页签,并未对后面打印0-3的页签产生影响,但是关闭了
索引号为1的窗口页签,存在handles中的每个页签对应的索引号并未发
生变化,并没有因为索引为1的页签关闭而将剩余的索引变化为0-3,而是
0,2,3,而这时候如果打印索引为1的页签标题会报错,我们想要重新将索
引号排序,就需要重新获取所有句柄.
'''
time.sleep(3)
handles2 = x.window_handles#重新获取句柄
x.switch_to.window(handles2[0])#切换到索引为0的窗口句柄
print(x.title)
x.switch_to.window(handles2[2])#切换到句柄索引为2的窗口
print(x.title)
x.switch_to.window(handles2[1])#切换到句柄索引为1的窗口
print(x.title)
print("运行完毕")
================
运行结果如下:
钟声敲响了日落,柏油路跃过山坡,一直通向北方的是我们想象,长大后也未曾经过~