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