1. 程式人生 > 程式設計 >Python爬蟲之Selenium多視窗切換的實現

Python爬蟲之Selenium多視窗切換的實現

前言:在頁面操作過程中有時候點選某個連結會彈出新的視窗,但由於Selenium的所有操作都是在第一個開啟的頁面進行的,這時就需要主機切換到新開啟的視窗上進行操作。WebDriver提供了switch_to.window()方法,可以實現在不同的視窗之間切換。 以百度首頁和百度註冊頁為例,在兩個視窗之間的切換。

本章中用到的關鍵方法如下:

  • current_window_handle:獲得當前視窗控制代碼
  • window_handles:返回所有視窗的控制代碼到當前會話
  • switch_to.window():用於切換到相應的視窗

跳轉至註冊頁面,然後獲取所有頁面的控制代碼,並列印各個頁面的title

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

time.sleep(2) #睡兩秒,看一下效果

driver.find_element_by_link_text('登入').click()

time.sleep(2) #睡兩秒,看一下效果

driver.find_element_by_link_text("立即註冊").click()

time.sleep(2) #睡兩秒,看一下效果

# 獲得當前視窗控制代碼
sreach_windows = driver.current_window_handle

# 獲得當前所有開啟的視窗的控制代碼
all_handles = driver.window_handles
for handle in all_handles:
  if handle != sreach_windows:
    driver.switch_to.window(handle)
    print(driver.title)
  else:
    print('當前頁面title:%s'%driver.title)

driver.quit()

到此這篇關於Python爬蟲之Selenium多視窗切換的實現的文章就介紹到這了,更多相關Selenium多視窗切換內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!