selenium-常見問題解決方案
- selenium版本
- selenium代理本地瀏覽器頁面
- Selenium之多窗口句柄的切換
selenium版本
selenium版本為: 3.141.0
注:selenium4x跟selenium3x會有不同的使用方法,
selenium代理本地瀏覽器頁面
利用 Selenium 庫實現對 Google Chrome 瀏覽器的自動化控制。
首先,通過 os.popen 命令啟動本地 Chrome,并開啟遠程調試端口。接著,配置 ChromeDriver 的路徑和瀏覽器選項,確保 Selenium 能夠連接到已啟動的 Chrome 實例。代碼隨后初始化 WebDriver,最大化瀏覽器窗口,并導航至指定頁面。
import os
import time # 事件庫,用于硬性等待from selenium import webdriver # 導入selenium的webdriver模塊os.popen('start chrome --remote-debugging-port=9527 --user-data-dir="C:\selenium"')chrome_driver_path = r"C:\Program Files\Google\Chrome\Application\chromedriver.exe"options = webdriver.ChromeOptions()options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")
driver = webdriver.Chrome(executable_path=chrome_driver_path, options=options)
# 最大化瀏覽器窗口
driver.maximize_window()url = "https://etax.guangdong.chinatax.gov.cn:8443/loginb/"
driver.get(url)time.sleep(2)
Selenium之多窗口句柄的切換
在使用 Selenium 進行瀏覽器自動化操作時,常常需要處理多個瀏覽器窗口或標簽頁。例如,當點擊一個 <a 標簽的超鏈接時,可能會在新窗口或新標簽頁中打開目標頁面。如果不進行窗口句柄的切換,Selenium 仍會在原窗口中執行操作,從而無法控制新打開的窗口。本文將介紹如何使用 Selenium 進行多窗口句柄的切換,確保能夠順利操作新窗口或標簽頁。
多窗口句柄的基本概念
每個瀏覽器窗口或標簽頁在 Selenium 中都有一個唯一的句柄(Handle)。通過獲取所有窗口的句柄,開發者可以在不同窗口之間切換,執行相應的操作。以下是處理多窗口的基本步驟:
- 獲取當前所有窗口的句柄
- 切換到目標窗口 執行所需操作
- 切換回原窗口(如有需要)
# 獲取當前頁面的所有句柄
window_handles = driver.window_handles
# 切換到新的標簽頁(假設新標簽頁是 window_handles[1])
driver.switch_to.window(window_handles[1])
# 在新窗口中執行操作,例如獲取頁面標題
print("新窗口的標題:", driver.title)
# 切換回原來的標簽頁(首頁)
driver.switch_to.window(window_handles[0])
# 在原窗口中繼續操作
print("原窗口的標題:", driver.title)
注:driver的定義見前文