最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

playwright保持網(wǎng)站的登錄狀態(tài)的幾種方法

 更新時(shí)間:2026年01月25日 09:19:02   作者:rock——you  
本文主要介紹了playwright保持網(wǎng)站的登錄狀態(tài)的幾種方法,包括保存和加載瀏覽器上下文的存儲狀態(tài),使用持久化上下文和使用Cookies手動保存和加載會話,感興趣的可以了解一下

在使用 Playwright 自動化測試時(shí),為了保持網(wǎng)站的登錄狀態(tài),可以通過以下方法實(shí)現(xiàn):

方法 1:保存和加載瀏覽器上下文的存儲狀態(tài)

Playwright 提供了 storageState 功能,可以保存當(dāng)前的瀏覽器存儲狀態(tài)(包括登錄的會話信息),并在后續(xù)會話中加載。

實(shí)現(xiàn)步驟:

  1. 登錄并保存狀態(tài)
    在第一次運(yùn)行時(shí),執(zhí)行登錄操作并將狀態(tài)保存到文件。

    from playwright.sync_api import sync_playwright
    
    def save_login_state():
        with sync_playwright() as p:
            browser = p.chromium.launch(headless=False)
            context = browser.new_context()
            page = context.new_page()
    
            # 打開登錄頁面并完成登錄
            page.goto("https://example.com/login")
            page.fill("input[name='username']", "your_username")
            page.fill("input[name='password']", "your_password")
            page.click("button[type='submit']")
    
            # 等待登錄完成
            page.wait_for_url("https://example.com/dashboard")
    
            # 保存登錄狀態(tài)到文件
            context.storage_state(path="state.json")
            browser.close()
    
    save_login_state()
    
  2. 加載保存的狀態(tài)
    在后續(xù)運(yùn)行中,加載保存的狀態(tài)文件,避免重復(fù)登錄。

    from playwright.sync_api import sync_playwright
    
    def use_saved_state():
        with sync_playwright() as p:
            browser = p.chromium.launch(headless=False)
            # 使用之前保存的存儲狀態(tài)
            context = browser.new_context(storage_state="state.json")
            page = context.new_page()
    
            # 直接訪問需要登錄的頁面
            page.goto("https://example.com/dashboard")
            print(page.title())
            browser.close()
    
    use_saved_state()
    

方法 2:使用持久化上下文

Playwright 支持使用帶有持久化存儲的瀏覽器上下文,自動保留登錄狀態(tài)。

實(shí)現(xiàn)步驟:

  1. 創(chuàng)建持久化上下文
    指定一個(gè)文件夾來保存瀏覽器會話數(shù)據(jù):

    from playwright.sync_api import sync_playwright
    
    def use_persistent_context():
        with sync_playwright() as p:
            # 創(chuàng)建持久化上下文
            user_data_dir = "user_data"
            browser = p.chromium.launch_persistent_context(
                user_data_dir, headless=False
            )
            page = browser.new_page()
    
            # 打開需要登錄的頁面
            page.goto("https://example.com/login")
    
            # 如果首次訪問,登錄后數(shù)據(jù)會自動保存到 user_data_dir
            page.fill("input[name='username']", "your_username")
            page.fill("input[name='password']", "your_password")
            page.click("button[type='submit']")
            page.wait_for_url("https://example.com/dashboard")
    
            browser.close()
    
    use_persistent_context()
    
  2. 后續(xù)運(yùn)行直接加載會話數(shù)據(jù)
    在后續(xù)運(yùn)行中,直接加載同一 user_data_dir,會話數(shù)據(jù)會自動保留:

    from playwright.sync_api import sync_playwright
    
    def use_existing_persistent_context():
        with sync_playwright() as p:
            # 使用之前的持久化上下文
            browser = p.chromium.launch_persistent_context(
                "user_data", headless=False
            )
            page = browser.new_page()
    
            # 訪問需要登錄的頁面
            page.goto("https://example.com/dashboard")
            print(page.title())
            browser.close()
    
    use_existing_persistent_context()
    

方法 3:使用 Cookies 手動保存和加載會話

通過手動保存和加載 Cookies 來保持登錄狀態(tài)。

實(shí)現(xiàn)步驟:

  1. 保存 Cookies

    from playwright.sync_api import sync_playwright
    import json
    
    def save_cookies():
        with sync_playwright() as p:
            browser = p.chromium.launch(headless=False)
            context = browser.new_context()
            page = context.new_page()
    
            page.goto("https://example.com/login")
            page.fill("input[name='username']", "your_username")
            page.fill("input[name='password']", "your_password")
            page.click("button[type='submit']")
            page.wait_for_url("https://example.com/dashboard")
    
            # 保存 Cookies 到文件
            cookies = context.cookies()
            with open("cookies.json", "w") as f:
                json.dump(cookies, f)
            browser.close()
    
    save_cookies()
    
  2. 加載 Cookies

    from playwright.sync_api import sync_playwright
    import json
    
    def load_cookies():
        with sync_playwright() as p:
            browser = p.chromium.launch(headless=False)
            context = browser.new_context()
    
            # 加載 Cookies
            with open("cookies.json", "r") as f:
                cookies = json.load(f)
                context.add_cookies(cookies)
    
            page = context.new_page()
            page.goto("https://example.com/dashboard")
            print(page.title())
            browser.close()
    
    load_cookies()
    

方法選擇

  • 方法 1(存儲狀態(tài)):適合短期保留登錄狀態(tài),并易于分享狀態(tài)文件。
  • 方法 2(持久化上下文):適合長期保留會話(類似普通瀏覽器),無需額外管理文件。
  • 方法 3(Cookies 管理):適合需要靈活操作 Cookies 的場景。

到此這篇關(guān)于playwright保持網(wǎng)站的登錄狀態(tài)的幾種方法的文章就介紹到這了,更多相關(guān)playwright 登錄狀態(tài)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

最新評論

抚远县| 南充市| 九龙县| 平安县| 霍林郭勒市| 普格县| 长春市| 龙门县| 东平县| 三亚市| 两当县| 遂平县| 齐齐哈尔市| 珲春市| 怀集县| 阳高县| 宣武区| 瓦房店市| 江油市| 康保县| 房产| 武义县| 民和| 邻水| 汽车| 朝阳区| 绥江县| 巨鹿县| 武胜县| 社旗县| 宁晋县| 林州市| 商都县| 大新县| 宁城县| 云南省| 郎溪县| 民勤县| 洛隆县| 延吉市| 南乐县|