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

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

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

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

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

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

實(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)
            # 使用之前保存的存儲(chǔ)狀態(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 支持使用帶有持久化存儲(chǔ)的瀏覽器上下文,自動(dòng)保留登錄狀態(tài)。

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

  1. 創(chuàng)建持久化上下文
    指定一個(gè)文件夾來保存瀏覽器會(huì)話數(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ù)會(huì)自動(dòng)保存到 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)行直接加載會(huì)話數(shù)據(jù)
    在后續(xù)運(yùn)行中,直接加載同一 user_data_dir,會(huì)話數(shù)據(jù)會(huì)自動(dòng)保留:

    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 手動(dòng)保存和加載會(huì)話

通過手動(dòng)保存和加載 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(存儲(chǔ)狀態(tài)):適合短期保留登錄狀態(tài),并易于分享狀態(tài)文件。
  • 方法 2(持久化上下文):適合長期保留會(huì)話(類似普通瀏覽器),無需額外管理文件。
  • 方法 3(Cookies 管理):適合需要靈活操作 Cookies 的場景。

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

您可能感興趣的文章:

相關(guān)文章

最新評(píng)論

扎鲁特旗| 新龙县| 建平县| 五原县| 抚州市| 洞口县| 肥西县| 灵丘县| 鱼台县| 加查县| 伊宁市| 长宁县| 陈巴尔虎旗| 永顺县| 通州区| 阳春市| 年辖:市辖区| 民和| 民县| 红安县| 宜良县| 洛隆县| 云林县| 黑山县| 保德县| 吉木乃县| 台前县| 景德镇市| 四川省| 兴山县| 永吉县| 阿克陶县| 黄梅县| 保亭| 名山县| 平原县| 和田市| 溆浦县| 西藏| 济源市| 贵定县|