Skip to main content
Cypress应用

clearCookie

清除特定的浏览器cookie。

caution

Cypress会在每次测试_前_自动清除所有cookie,以防止在启用测试隔离时测试间共享状态。除非你需要在单个测试中清除特定cookie或测试隔离被禁用,否则不应使用此命令。

语法

cy.clearCookie(name)
cy.clearCookie(name, options)

用法

正确用法

cy.clearCookie('authId') // 清除名为'authId'的cookie

参数

name (String)

要清除的cookie名称。

options (Object)

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

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

生成结果 了解主题管理

  • cy.clearCookie()返回null

示例

无参数

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

在此示例中,首次登录时服务器会返回一个会话cookie。调用cy.clearCookie('session_id')后,会清除该会话cookie。然后导航到未授权页面时,我们断言服务器已将我们重定向回登录页。

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

规则

要求 了解命令链

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

断言 了解断言

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

超时设置 了解超时机制

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

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

命令日志

设置cookie后清除cookie

cy.setCookie('foo', 'bar')
cy.clearCookie('foo')
cy.getCookie('foo').should('be.null')

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

清除cookie的命令日志

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

清除cookie的控制台日志

另请参阅