Python獲取瀏覽器窗口句柄過(guò)程解析
句柄(handle)是C++程序設(shè)計(jì)中經(jīng)常提及的一個(gè)術(shù)語(yǔ)。它并不是一種具體的、固定不變的數(shù)據(jù)類型或?qū)嶓w,而是代表了程序設(shè)計(jì)中的一個(gè)廣義的概念。句柄一般是指獲取另一個(gè)對(duì)象的方法——一個(gè)廣義的指針,它的具體形式可能是一個(gè)整數(shù)、一個(gè)對(duì)象或就是一個(gè)真實(shí)的指針,而它的目的就是建立起與被訪問(wèn)對(duì)象之間的惟一的聯(lián)系
使用 selenium 獲取窗口句柄
from selenium import webdriverimport time# chromedriver的絕對(duì)路徑# driver_path = r’D:0SW最臨時(shí)軟件chromedriver.exe’driver_path = r’D:0SW最臨時(shí)軟件geckodriver.exe’# 初始化一個(gè)driver,并且指定chromedriver的路徑# driver = webdriver.Chrome(executable_path=driver_path)driver = webdriver.Firefox(executable_path=driver_path)# 請(qǐng)求網(wǎng)頁(yè)driver.get('http://www.gsxt.gov.cn/index.html')driver.execute_script('window.open(’http://www.hao6v.com’)')# 打印窗口句柄a = driver.window_handlesprint(a)# 切換窗口driver.switch_to.window(driver.window_handles[1])print(driver.current_url)print(driver.page_source)driver.switch_to.window(a[0]) # 選擇第一個(gè)標(biāo)簽頁(yè) 睡兩秒 選擇第二個(gè)標(biāo)簽頁(yè)time.sleep(2)driver.switch_to.window(a[1])
雖然在窗口中切換到了新的頁(yè)面,但是driver中還沒(méi)切換
如果想要在代碼中切換到新的頁(yè)面,并爬取頁(yè)面,那么應(yīng)該使用driver.switch_to.window來(lái)切換到指定的窗口
從driver.window_handles中取出具體是 第幾個(gè)窗口
driver.window_handles是一個(gè)列表,里邊存儲(chǔ)的是窗口句柄。他會(huì)按照打開(kāi)的順序來(lái)存儲(chǔ)窗口句柄
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息2. Vue+Spring Boot簡(jiǎn)單用戶登錄(附Demo)3. 深入理解Android熱修復(fù)技術(shù)原理之資源熱修復(fù)技術(shù)4. PHP用代碼實(shí)現(xiàn)文件下載5. 用JS實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲6. ASP.NET MVC使用typeahead.js實(shí)現(xiàn)輸入智能提示功能7. IntelliJ IDEA安裝插件的方法步驟8. Intellij IDEA連接Navicat數(shù)據(jù)庫(kù)的方法9. html小技巧之td,div標(biāo)簽里內(nèi)容不換行10. python和JavaScript哪個(gè)容易上手
