如何使用Java Selenium从浏览器Cookie获取Token用于Rest Assured
使用Java Selenium获取浏览器Token并用于Rest Assured
Token通常存储在Cookie、LocalStorage/SessionStorage中,以下是两种常见场景的代码实现:
1. 从Cookie中提取Token
多数后端服务会将Token存入Cookie(比如JSESSIONID、auth_token等),直接通过Selenium的Cookie管理API获取:
// 初始化WebDriver并完成登录操作(确保Token已生成) WebDriver driver = new ChromeDriver(); driver.get("目标系统的登录后页面URL"); // 获取指定名称的Cookie,替换为实际的Token键名 Cookie authCookie = driver.manage().getCookieNamed("auth_token"); String token = authCookie.getValue(); // 传入Rest Assured发起请求 given() .header("Authorization", "Bearer " + token) // 根据认证方式调整,如Basic、Bearer .when() .get("目标API接口URL") .then() .statusCode(200);
2. 从LocalStorage/SessionStorage提取Token
前端单页应用常将Token存在LocalStorage或SessionStorage中,需通过执行JavaScript获取:
// 确保页面已加载完成且Token已存入存储 WebDriver driver = new ChromeDriver(); driver.get("登录后的页面URL"); // 执行JS获取LocalStorage中的Token,替换为实际的存储键名 String token = (String) driver.executeScript("return localStorage.getItem('user_token');"); // SessionStorage的写法类似,替换为sessionStorage即可 // String token = (String) driver.executeScript("return sessionStorage.getItem('user_token');"); // 用Rest Assured调用API given() .header("Authorization", "Bearer " + token) .when() .post("目标API接口URL") .then() .statusCode(201);
注意事项
- 必须在Token已生成后执行获取操作(比如完成登录流程后)
- 实际的Cookie键名、存储键名需通过浏览器开发者工具(Application标签)查看确认
- 若Token在请求/响应头中,可结合Selenium的网络日志监听获取(需配置浏览器驱动的网络日志参数)
内容的提问来源于stack exchange,提问作者Random Boy
相关产品推荐
相关产品推荐

