網上有很多是selenium基于python來獲取兩個窗口句柄與切換,本文實現用python+selenium獲取多窗口句柄并一一切換至原窗口句柄(三個窗口),且在每個窗口下進行一個搜索或翻譯,然后截圖。
目前成都創新互聯已為上千余家的企業提供了網站建設、域名、網站空間、網站改版維護、企業網站設計、汕尾網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
代碼如下:
# coding=utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.maximize_window() # 窗口最大化 driver.get('https://www.baidu.com') # 在當前瀏覽器中訪問百度 time.sleep(2) #print(driver.current_window_handle)# 輸出當前窗口句柄(百度) frist_handle = driver.current_window_handle # 新開一個窗口,通過執行js來新開一個窗口,訪問搜狗 js='window.open("https://www.sogou.com");' driver.execute_script(js) # 再新開一個窗口,通過執行js來新開一個窗口,訪問有道 js='window.open("http://www.youdao.com/");' driver.execute_script(js) handles = driver.window_handles # 獲取當前窗口句柄集合(列表類型) print(handles) # 輸出句柄集合 for handle in handles:# 切換窗口(切換到有道) if handle != frist_handle: driver.switch_to_window(handle) #print(driver.current_window_handle) # 輸出當前窗口句柄(有道) driver.find_element_by_id("translateContent").send_keys("selenium") #有道翻譯selenium driver.find_element_by_css_selector("button").click() #driver.find_element_by_css_selector("[data-rlog='search-popup-close-win']").click() driver.find_element_by_css_selector("[class='close js_close']").click() #關閉彈窗 driver.get_screenshot_as_file("D:\windows\\youdao.jpg") # 截圖 可自定義截圖后的保存位置(D:\windows)和圖片命名(youdao.jpg) time.sleep(5) break driver.close() #關閉當前窗口(有道) for handle in handles:# 切換窗口(切換到搜狗) if handle != frist_handle: driver.switch_to_window(handles[-1]) #此時只剩兩個句柄,取最后一個 #print(driver.current_window_handle) # 輸出當前窗口句柄(搜狗) driver.find_element_by_id("query").send_keys("selenium") #搜狗搜索selenium driver.find_element_by_id("stb").click() time.sleep(2) #等待2s為了截完整搜索結果圖 driver.get_screenshot_as_file("D:\windows\\sougou.jpg") # 截圖 可自定義截圖后的保存位置和圖片命名 time.sleep(5) break driver.close() #關閉當前窗口(搜狗) #driver.switch_to_window(frist_handle) #切換回百度窗口 driver.switch_to_window(handles[0]) #切換回百度窗口 driver.find_element_by_id("kw").send_keys("selenium") #百度搜索selenium driver.find_element_by_id("su").click() time.sleep(2) #等待2s為了截完整搜索結果圖 driver.get_screenshot_as_file("D:\windows\\baidu.jpg") #截圖 可自定義截圖后的保存位置和圖片命名 time.sleep(5) driver.quit() #退出瀏覽器
截圖如下:
當前標題:selenium獲取多窗口句柄并一一切換至原窗口句柄(三個窗口)
網址分享:http://www.yijiale78.com/article30/joohso.html
成都網站建設公司_創新互聯,為您提供域名注冊、全網營銷推廣、電子商務、軟件開發、定制開發、網頁設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯