Skip to main content
Cypress应用

clearCookies

清除指定域的浏览器 cookies。

caution

当启用测试隔离时,Cypress 会在每个测试_之前_自动清除所有 cookies,以防止测试间状态共享。除非你需要在一个测试内部清除特定 cookies 或禁用了测试隔离,否则不应使用此命令。

语法

cy.clearCookies()
cy.clearCookies(options)

用法

正确用法

cy.clearCookies() // 清除当前域的 cookies

参数

options (Object)

传入一个选项对象来改变 cy.clearCookies() 的默认行为。

选项默认值描述
domain当前 URL 的主机名清除指定域的 cookies
logtrue命令日志中显示该命令
timeoutresponseTimeout等待 cy.clearCookies() 解析的超时时间,超过则超时

生成结果 了解主题管理

  • cy.clearCookies() 返回 null

示例

无参数

登录后清除 cookies
仅限端到端测试

在此示例中,首次登录时服务器会返回一个会话 cookie。调用 cy.clearCookies() 后,会话 cookie 被清除,当导航到未授权页面时,服务器应将我们重定向回登录页面。

// 假设我们刚刚登录
cy.contains('Login').click()
cy.url().should('include', 'profile')
cy.clearCookies()
cy.visit('/dashboard') // 我们应该被重定向回登录页面
cy.url().should('include', 'login')

规则

要求 了解命令链

  • cy.clearCookies() 必须链在 cy 之后调用。

断言 了解断言

  • cy.clearCookies() 不能链任何断言。

超时设置 了解超时机制

  • cy.clearCookies() 不应超时。
caution

由于 cy.clearCookies() 是异步的,理论上在与 Cypress 内部自动化 API 通信时可能会发生超时。但实际上这种情况几乎不会发生。

命令日志

获取 cookies 后清除 cookies

cy.getCookies().should('have.length', 1)
cy.clearCookies()
cy.getCookies().should('be.empty')

以上命令将在命令日志中显示为:

命令日志

当点击命令日志中的 clearCookies 时,控制台会输出以下内容:

控制台日志

另请参阅