在浏览器中切换tab。
主要思路:
1.打开百度首页
2.获取百度主页上面的学术链接
3.在新tab中打开百度学术
4.获取百度主页的窗口句柄
5.获取百度学术的窗口句柄
6.通过窗口句柄切换页面
练习场景:
1.打开百度首页
2.获取百度主页上面的学术链接
3.用JavaScript语句,通过这条语句在新的标签页打开百度学术
4.执行JavaScript语句
5.获取百度主页的窗口句柄
6.获取浏览器打开的所有标签页句柄
7.循环判断是否是学术标签的句柄,如果是学术标签的句柄就会保存下来
8.通过窗口句柄切换页面,通过switch_to.window(标签句柄) 方法
具体代码:
# coding=utf-8
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("http://www.baidu.com/")
time.sleep(1)
href = driver.find_element_by_link_text("学术").get_attribute('href')#获取百度主页学术的链接
js = 'window.open("{}");'.format(href)#javaScript语句,通过这条语句在新的标签页打开百度学术
driver.execute_script(js)#执行JavaScript语句
baidu_handle=driver.current_window_handle # #获取百度主页的窗口句柄
handles=driver.window_handles #获取浏览器打开的所有标签页的句柄
for handle in handles:
if handle != baidu_handle:
xueshu_handle=handle
print(baidu_handle,xueshu_handle)
print('now window handle:',driver.current_window_handle)
driver.switch_to.window(xueshu_handle)#切换标签页,原本在百度主页的页面,现在切换到百度学术
print("now window handle:",driver.current_window_handle)
time.sleep(2)
driver.close()#关闭当前标签页,close和quit的区别是一个是关闭当前页,一个是关闭浏览器
driver.switch_to.window(baidu_handle) #切换到百度主页
time.sleep(2)
driver.close()