Python+Selenium练习(十五)-在浏览器中切换tab

  在浏览器中切换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()

  

参考文章:https://blog.csdn.net/u011541946/article/details/69573632

原文地址:https://www.cnblogs.com/zhaocbbb/p/12627388.html