在瀏覽器中切換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
