selenium開啟指定Chrome賬號
-
獲取User Data路徑
開啟目標Chrome,在搜尋欄輸入chrome://version,找到“個人資料路徑”。
這裡獲取到的路徑為:C:\Users\Admin\AppData\Local\Google\Chrome\User Data,去掉後面的\Profile 2。
-
獲取--profile-directory值
方法一:
上圖User Data路徑末尾的“Profile 2”即為--profile-directory值。
方法二:
右鍵目標Chrome的桌面圖示,點選屬性可看到--profile-directory值為“Profile 2”。
-
程式碼演示
from time import sleep from selenium import webdriver options = webdriver.ChromeOptions() # 步驟1獲取到的User Data路徑 options.add_argument(r'--user-data-dir=C:\Users\Admin\AppData\Local\Google\Chrome\User Data') # 步驟2獲取到的--profile-directory值 options.add_argument("--profile-directory=Profile 2") driver = webdriver.Chrome(options=options) driver.get("https://www.baidu.com/") sleep(3) driver.quit()
注意:此時已實現開啟目標Chrome,但當電腦已有開啟的Chrome瀏覽器時,執行到第10行時會報錯:user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
解決1:在執行指令碼之前關閉所有Chrome例項。即關閉所有Chrome瀏覽器
解決2(推薦):複製一份“Profile 2”資料夾到自己的目錄,專門用於自動化。
複製到自己的目錄下:C:\Users\Admin\Desktop\AutoTest\ChromeData
-
修改程式碼
from time import sleep from selenium import webdriver options = webdriver.ChromeOptions() # 修改路徑為自己的目錄 options.add_argument(r'--user-data-dir=C:\Users\Admin\Desktop\AutoTest\ChromeData') options.add_argument("--profile-directory=Profile 2") driver = webdriver.Chrome(options=options) driver.get("https://www.baidu.com/") sleep(3) driver.quit()
至此,解決了多開Chrome時執行指令碼報錯的問題~