【心善淵&Selenium3.0基礎】— 23、拓展:Selenium使用瀏覽器加載項配置實現用戶免登陸

1、什麼是加載項配置

在很多情況下,我們在登錄網站的時候,瀏覽器都會彈出一個是否保存登錄賬號的信息。如果我們選擇保存,那麼我們在下次登錄時就不用再次輸入賬號,直接免登錄了。

在我們實際的測試過程中,測試註冊登錄只是其中的一部分流程,然而我們用selenium打開網站的時候,每次都需要重新登錄,就非常麻煩。那麼在selenium中能不能實現免登陸操作?

當然是可以的,只需要對要打開的瀏覽器做加載項配置就可以了。

說明一下爲什麼selenium每次代開網站都需要重新登錄。

使用selenium的webdriver打開的瀏覽器的時候,是用腳本去打開瀏覽器的。其實是重新打開了一個進程,跟手動打開瀏覽器不是一個進程,所以一些信息不會被記錄進去。

2、加載Firefox配置

說明:

Firefox瀏覽器加載瀏覽器配置,需要用FirefoxProfile(profile_directory)這個方法創建一個配置類。

profile_directory即爲瀏覽器配置文件的路徑地址。

怎樣找到profile_directory?

打開Firefox瀏覽器點右上角設置>?(幫助)>故障排除信息>顯示文件夾

到如下圖界面:
在這裏插入圖片描述

示例:

"""
1.學習目標:
    瞭解使用火狐瀏覽器實現免登陸
2.操作步驟
    1.手動登錄網站,點擊記住密碼
    2.找火狐瀏覽器配置文件夾
        火狐瀏覽器--->設置--->幫助--->故障排除信息--->配置文件夾
        將文件夾路徑複製保存
    3.將配置文件夾路徑保存到代碼
        profile_directory = 配置文件夾路徑
    4.實例webdriver中的火狐瀏覽器profile
        profile = webdriver.FirefoxProfile(firefox_profile=配置文件夾路徑)
    5.啓動火狐瀏覽器,並傳入配置信息
        driver = webdriver.Firefox(profile)
    6.打開可以免登陸的地址
        driver.get(網站)
3.需求
    使用火狐瀏覽器實現163郵箱免登陸
"""
# 1.導入selenium
from selenium import webdriver
from time import sleep

# 2.找火狐瀏覽器配置文件夾
# 火狐瀏覽器--->設置--->幫助--->故障排除信息--->配置文件夾

# 3.將配置文件夾路徑保存到代碼
# 如果不加r,路徑中的\都要換成\\
profile_directory = r"C:\Users\L\AppData\Roaming\Mozilla\Firefox\Profiles\6pv0pces.default"

# 4.實例webdriver中的火狐瀏覽器profile
profile = webdriver.FirefoxProfile(profile_directory)

# 5.啓動火狐瀏覽器,並傳入配置信息
driver = webdriver.Firefox(firefox_profile=profile)

# 6.打開可以免登陸的地址
driver.get("http://mail.163.com/")
sleep(5)

# 7.關閉瀏覽器
driver.quit()

3、加載Chrome配置

與Firefox瀏覽器原理相同,在Chrome瀏覽器中也可以實現。

不過有的版本實現不了。

環境:

  • 系統環境:windows10
  • Python版本:3.7.7
  • Chrome瀏覽器版本:74.0.3729.131(正式版本) (32 位)

操作步驟:

  1. 獲取個人資料路徑

    # Chrome安裝路徑
    user-data-dir='C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data\\'
    

    注意:這裏User Data目錄,有很多人是找不到了,可能就無法實現了。

  2. 加載配置數據

    # 配置谷歌瀏覽器加載項
    options = webdriver.ChromeOptions()
    options.add_argument(user_data_dir)
    
  3. 將加載項配置到啓動瀏覽器中

    driver = webdriver.Chrome(options=options)
    

示例:

"""
1.學習目標
    瞭解使用谷歌瀏覽器實現賬號免登陸
2.操作步驟(語法)
    2.1 手動登錄網站,點擊記住密碼
    2.2 找到谷歌瀏覽器個人資料路徑
        一定要注意格式:
        user_data_dir =
        '--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data\\'
    2.3 配置谷歌瀏覽器加載項
        option = webdriver.ChromeOptions()
        option.add_argument(路徑)
    2.4 打穀歌瀏覽器並且傳入options
        driver=webdriver.Chrome(options=options)
    2.5 打開可以免登陸的地址
        driver.get(網站)
3.需求
    使用谷歌瀏覽器實現163郵箱免登陸
"""
# 1.導入selenium
from selenium import webdriver
from time import sleep

# 2.獲取谷歌瀏覽器個人資料路徑
user_data_dir = r"--user-data-dir=C:\Users\L\AppData\Local\Google\Chrome\User Data"

# 3.配置谷歌瀏覽器加載項
options = webdriver.ChromeOptions()
options.add_argument(user_data_dir)

# 4.打開谷歌瀏覽器並且傳入options
driver = webdriver.Chrome(options=options)

# 5.打開可以免登陸的地址
driver.get("http://mail.163.com/")
sleep(5)

# 6.關閉瀏覽器
driver.quit()

注意:

在適用上面腳本實現使用谷歌瀏覽器實現賬號免登陸的時候,要關閉所有打開的谷歌瀏覽器窗口才能正常啓動。

否則會報錯:InvalidArgumentException:無效參數異常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章