设置Cookie信息
设置Cookie信息 用于在浏览器中添加或更新指定 Cookie。你可以按 URL 设置,也可以按 Domain 和 Path 设置,常用于准备登录态、配置用户偏好、验证 Cookie 安全属性和会话管理逻辑。
指令标识:SetCookie
指令类型:网页指令
指令描述:在浏览器中设置 Cookie,支持设置 Cookie 的各种属性,包括名称、值、域名、路径、过期时间、安全性参数等。用于实现绕过登录、保持会话状态等功能。
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。设置Cookie信息 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「设置Cookie信息」节点,填写 Name、Value、设置方式及作用范围 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.setCookie(method="URL", name="sessionId", value="demo", url="https://example.com/") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 需要在访问网页前准备登录态或会话数据。
- 需要设置语言、主题、实验开关等用户偏好 Cookie。
- 需要验证
HttpOnly、Secure、SameSite等安全属性。 - 需要测试 Cookie 过期、清理、跨子域生效等会话管理场景。
- 目标浏览器环境已启动,并且能访问目标站点。
- Cookie 的
name已明确,value使用有效测试数据。 - 使用
method=URL时,确认url格式正确并包含协议,例如https://example.com/。 - 使用
method=DOMAIN时,确认domain和path符合作用域要求。 - 当
SameSite=NONE时,通常需要同时启用secure。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:给电商后台测试环境写入会话 Cookie。按 5 步即可跑起来:
- 先使用 打开网页 打开目标站点,或确认当前浏览器窗口已在目标站点。
- 在工作流画布中添加 设置Cookie信息 指令。
- 在 Name 中填写
sessionId,在 Value 中填写测试会话值,例如demo-session-001。 - 将 设置方式 选择为
URL,在 URL 中填写:
https://example.com/- 根据需要配置
SameSite、secure、httpOnly,运行后刷新页面或继续执行后续验证节点。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| Name | name | String | 是 | - | Cookie 的键名,用于标识特定的 Cookie,例如 sessionId、userToken。 |
| Value | value | String | 否 | - | 注入新的、有效的会话值,实现绕过登录。为空表示设置值为空的 Cookie。 |
| 设置方式 | method | Enum | 是 | URL | 设置 Cookie 的方式:URL(根据指定 url 设置 Cookie)、DOMAIN(根据指定 Domain 和 path 设置 Cookie)。 |
| URL | url | String | 否 | - | 完整的 URL 地址,例如 https://example.com。method=URL 时该参数为必填;为空时作用于当前云浏览器有效窗口页面。 |
| Domain | domain | String | 否 | - | 将 Cookie 作用域扩大到父域以实现跨子域登录。会由底层浏览器 API 严格校验,防止设置非当前域或父域以外的域名。method=DOMAIN 时该参数为必填。 |
| Path | path | String | 否 | - | 限制 Cookie 仅在网站的特定子路径下生效。 |
| 有效期 | expires | java.util.Date | 否 | - | 用于持久化登录状态或测试会话过期逻辑。为空:会话 Cookie,关闭浏览器失效;为 0:立即删除;为正数:持久化 Cookie。 |
| SameSite | sameSite | Enum | 否 | NONE | 控制 Cookie 是否在跨站请求中发送:STRICT(严格模式)、LAX(宽松模式)、NONE(无限制模式)。值为 NONE 时需勾选 secure。 |
| secure | secure | Boolean | 否 | True | 勾选时,确保 Cookie 只能通过 HTTPS 协议发送。需与 SameSite=NONE 的校验逻辑联动。 |
| httpOnly | httpOnly | Boolean | 否 | - | 勾选时,防止 XSS 攻击窃取会话 Cookie。开启后该 Cookie 无法通过浏览器端 JavaScript(如 document.cookie)读取、修改或删除,只能在 HTTP 请求/响应中由服务器访问。 |
该指令主要执行 Cookie 写入动作,原文未提供可配置输出参数;如需确认设置结果,建议后续使用获取 Cookie 或页面验证类指令。
- 节点运行成功,没有域名、URL 或安全属性校验错误。
- 后续获取 Cookie 指令能读取到对应
name的 Cookie。 - 刷新页面后,依赖该 Cookie 的页面状态符合预期。
运行后你会看到(以上面场景为例):
- Cookie 列表中出现
sessionId=demo-session-001。 - 页面刷新后保持测试会话状态,或后续节点能读取到该 Cookie。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| Cookie 未写入 | name 为空,或目标 URL/Domain 不合法 | 检查 name、method、url/domain 是否正确 |
| 浏览器拒绝 Cookie | domain 不属于当前站点或父域 | 使用当前站点域名或合法父域,避免设置无关域名 |
SameSite=NONE 设置失败 | 未启用 secure 或目标不是 HTTPS | 勾选 secure,并使用 https:// 地址 |
| 通过页面脚本读不到 Cookie | 开启了 httpOnly | 这是预期行为;使用服务端请求或获取 Cookie 指令确认 |
| 刷新后 Cookie 消失 | 未设置有效期,属于会话 Cookie | 如需持久化,设置 expires |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 根据指定 URL 设置一个 Cookiebots.setCookie( method="URL", name="sessionId", value="demo-session-001", expires="2025-11-10 00:00:00", sameSite="NONE", secure=True, httpOnly=False, url="https://example.com/",)如果需要按域名和路径设置 Cookie,可以填写 domain 和 path:
bots.setCookie( method="DOMAIN", name="theme", value="dark", domain="example.com", path="/",)可视化表单里的「设置方式」「Name」「Value」「有效期」「SameSite」「secure」「httpOnly」「URL」「Domain」「Path」分别对应代码里的 method、name、value、expires、sameSite、secure、httpOnly、url、domain、path。
如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:Cookie 名称是否区分大小写?
Section titled “Q1:Cookie 名称是否区分大小写?”A: 区分大小写。例如 sessionId 和 SessionId 是两个不同的 Cookie。
Q2:如何设置会话 Cookie?
Section titled “Q2:如何设置会话 Cookie?”A: 不设置 expires 时,Cookie 将作为会话 Cookie,浏览器关闭后自动删除。如需持久化 Cookie,需要设置有效期。
Q3:URL 参数必须是什么格式?
Section titled “Q3:URL 参数必须是什么格式?”A: URL 格式必须正确且可访问,建议包含协议(http:// 或 https://),例如 https://example.com。
Q4:设置 Cookie 时需要重点关注哪些属性?
Section titled “Q4:设置 Cookie 时需要重点关注哪些属性?”A: domain 必须与当前页面域名匹配或为其父域名;path 决定 Cookie 生效路径;httpOnly 会阻止浏览器端 JavaScript 读取;secure 表示仅在 HTTPS 连接中传输;sameSite 用于控制跨站请求场景。