You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium JS测试Svelte项目时登录后无法获取授权Cookie如何解决

问题核心原因

你在点击授权按钮后立即执行了Cookie获取逻辑,此时后端授权请求还未返回,浏览器尚未写入授权Cookie,因此拿到的是空结果。

可行解决方案

1. 等待目标Cookie写入后再获取

使用Selenium内置的等待机制,轮询检查目标授权Cookie是否存在,确认写入后再执行后续操作,示例代码如下:

const { By, until } = require('selenium-webdriver');
const URL = "http://localhost:5000"

describe('SVELTE CLIENT APP', function() {
    // 全局设置超时时间,避免等待超时报错
    this.timeout(30000);
    var driver;
    before(async function () {
        driver = new webdriver.Builder()
            .forBrowser('chrome')
            .build();
    });

    after(async function() {
        await driver.quit();
    });


    describe('Navigation with Auth', async function () {
        it('Experiment', async function (){
            await driver.get(URL);

            // 点击授权按钮
            await driver.findElement(By.css('body > div > fieldset:nth-child(6) > div:nth-child(2) > span > button > span')).click();

            // 等待AUTH_COOKIE写入,最多等待10秒
            await driver.wait(async function() {
                const cookies = await driver.manage().getCookies();
                return cookies.some(cookie => cookie.name === 'AUTH_COOKIE');
            }, 10000, '授权Cookie未在规定时间内写入');

            // 此时就能正常获取到授权Cookie
            const allCookies = await driver.manage().getCookies();
            const authCookie = allCookies.find(cookie => cookie.name === 'AUTH_COOKIE');
            console.log('授权Cookie:', authCookie);
            
            // 后续业务逻辑
            //....
        });
    });
});

2. 等待授权完成的页面标识后再获取

如果授权完成后页面会跳转、或者出现专属的登录后元素,可以先等待该元素加载完成,再执行Cookie获取逻辑,更符合真实用户操作时序:

// 示例:等待授权完成后显示的「欢迎回来」元素出现
await driver.wait(until.elementLocated(By.id('welcome-text')), 10000);
// 再获取Cookie
const cookies = await driver.manage().getCookies();

其他排查点

  • 确认你的授权Token确实是存储在Cookie中:如果后端返回的Token是存在localStorage/sessionStorage里,需要用await driver.executeScript('return localStorage.getItem("AUTH_TOKEN")')的方式获取
  • 确认Cookie的作用域和当前测试域名匹配:如果Cookie是写入在父域名下,需要先导航到对应域名下才能获取到对应Cookie

内容的提问来源于stack exchange,提问作者Niki_Lauda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:36:04