前戲
在我們之前寫的自動化腳本中,不知道大家有沒有發現,每次打開的都是一個新的瀏覽器(相當於新安裝的)。但是有時候,我們想打開的是我們配置好的瀏覽器。我在之前的公司做web自動化的時候,由於我們的網站是n年前開發的(代碼很low的那種),如果這時候你想上傳圖片,必須要在瀏覽器設置里給這個網站啟用flash才能上傳。如果每次打開的都是新瀏覽器的話,那根本就做不了自動化,所以這時候就要讓selenium啟動一個我們配置好的瀏覽器
Chrome瀏覽器
在Chrome瀏覽器的地址欄輸入:chrome://version/,查看個人資料路徑並復制路徑
路徑后面的Default不需要,不然還是打開一個新用戶。
在執行腳本時,確保沒有谷歌瀏覽器打開,不然會報selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
然后在實例化瀏覽器的時候寫如下代碼
from selenium import webdriver # 個人資料路徑 user_data_dir = r'--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data' # 加載配置數據 option = webdriver.ChromeOptions() option.add_argument(user_data_dir) # 啟動瀏覽器配置 driver = webdriver.Chrome(chrome_options=option, executable_path=r'D:\drivers\chromedriver.exe') driver.get('https://www.baidu.com/')
Firefox瀏覽器
打開Firefox瀏覽器,進入右上角的幫助>故障排除信息,查看瀏覽器配置文件路徑並復制此路徑
from selenium import webdriver # 配置文件路徑 profile_path = r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\92xx6o4w.default' # 加載配置數據 profile = webdriver.FirefoxProfile(profile_path) # 啟動瀏覽器配置 driver = webdriver.Firefox(firefox_profile=profile, executable_path=r'D:\drivers\geckodriver.exe') driver.get(r'http://www.baidu.com/') driver.quit()
這樣配置好之后,打開的瀏覽器都是我們配置好的瀏覽器,添加的標簽等等都存在