1. 程式人生 > 其它 >selenium 如何在已開啟的瀏覽器上繼續執行自動化指令碼?

selenium 如何在已開啟的瀏覽器上繼續執行自動化指令碼?

前言

使用selenium 做web自動化的時候,經常會遇到這樣一種需求,是否可以在已經開啟的瀏覽器基礎上繼續執行自動化指令碼?
這樣前面的驗證碼登入可以手工點過去,後面頁面使用指令碼繼續執行,這樣可以解決很大的一個痛點。

命令列啟動瀏覽器

首先右鍵Chrome瀏覽器桌面圖示,找到chrome.exe的安裝路徑

複製地址C:\Program Files\Google\Chrome\Application 新增到環境變數Path下

開啟cmd輸入命令啟動chrome瀏覽器

  • --remote-debugging-port 是指定執行埠,可以設定容易埠,只要沒被佔用就行
  • --user-data-dir 指定執行瀏覽器的執行資料,新建一個乾淨目錄,不影響系統原來的資料
> chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenium_chrome"

執行後會啟動chrome瀏覽器

selenium執行已開啟瀏覽器

在已開啟的瀏覽器上輸入我的部落格地址:https://www.cnblogs.com/yoyoketang/

新建py檔案,可以接著瀏覽器上直接執行,不用重新啟動瀏覽器

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(chrome_options=chrome_options)
# 接著執行
print(driver.current_url)
print(driver.title)

執行結果

https://www.cnblogs.com/yoyoketang/
上海-悠悠 - 部落格園

通過此方法就可以解決登入頁面驗證碼的問題了,驗證碼手工操作,後面的頁面繼續用程式碼操作。