Cypress 错误信息
- 测试文件错误
- 支持文件错误
- 命令错误
Cypress 无法在运行中的测试之外执行命令 cy...()
失败,因为页面已更新cy...()
失败,因为元素无法交互cy...()
失败,因为元素当前正在动画测试已完成,但 Cypress 仍有命令在其队列中 cy.visit()
失败,因为您尝试访问第二个唯一域cy.visit()
失败,因为您尝试访问不同的源域cy.visit()
成功,但命令超时Cypress.addParentCommand()
/Cypress.addDualCommand()
/Cypress.addChildCommand()
已被移除,替换为Cypress.Commands.add()
Cypress 检测到您在自定义命令中调用了一个或多个 cy
命令,但返回了不同的值。Cypress 检测到您调用了一个或多个 cy
命令,但返回了不同的值。Cypress 检测到您从命令中返回了一个 promise,同时在该 promise 中调用了一个或多个 cy 命令。 Cypress 检测到您在测试中返回了一个 promise,但在该 promise 中调用了一个或多个 cy
命令。Cypress 检测到您在测试中返回了一个 promise,但也调用了 done 回调。 CypressError: 重试超时:期望找到元素:‘…’,但从未找到。从元素查询:<…>
- CLI 错误
您传递了 --record
标志,但没有提供记录密钥。cypress ci
命令已被弃用找不到缓存的 Cypress 二进制文件 --ci-build-id
标志使用不正确--ci-build-id
、--group
、--tag
、--parallel
或--auto-cancel-after-failures
标志只能在记录时使用我们无法确定唯一的 CI 构建 ID 此运行的组名已被使用 无法跨环境并行化测试 无法在此组中并行化测试 运行必须传递 --parallel
标志无法在过期的运行上并行化测试 运行不接受任何新组 无法解压 Cypress 应用程序。这很可能是因为您的系统上超过了最大路径长度。 错误:未知选项:--auto-cancel-after-failures --auto-cancel-after-failures 必须是整数或 false --auto-cancel-after-failures 传递了非商业或企业云账户 您为已在进行中的运行传递了 --auto-cancel-after-failures 标志
- 页面加载错误
- 浏览器错误
- Cypress 应用程序错误
测试文件错误
未找到测试
此消息表示 Cypress 无法在指定文件中找到测试。如果您有一个空的测试文件且尚未编写任何测试,很可能会看到此消息。

准备测试文件时发现错误
此消息表示 Cypress 在编译和/或打包测试文件时遇到错误。Cypress 会自动编译和打包测试代码,以便您可以使用 ES2015、CoffeeScript、模块等。
通常出现此消息的原因有:
- 文件不存在
- 文件或其依赖项中存在语法错误
- 缺少依赖项
当测试文件中的错误修复后,测试将自动重新运行。
支持文件错误
支持文件缺失或无效
Cypress 在版本 0.18.0
中移除了 supportFolder
选项,改为支持模块和 supportFile
配置选项。
Cypress 过去会在测试文件之前自动包含 supportFolder
中的所有脚本。然而,自动包含特定目录中的所有文件有些神奇且不直观,并且需要为实用函数创建全局变量。
加载配置错误
Cypress 版本 10.0.0
中从根配置对象移除了 supportFile
配置选项。如果您想使用默认 supportFile
配置之外的文件,必须在每个测试类型的配置对象中单独添加此属性。
使用模块实现实用函数
Cypress 支持 ES2015 模块和 CommonJS 模块。您可以导入/要求 npm 模块以及本地模块:
import _ from 'lodash'
import util from './util'
it('uses modules', () => {
expect(_.kebabCase('FooBar')).to.equal('foo-bar')
expect(util.secretCode()).to.equal('1-2-3-4')
})
使用 supportFile 在测试代码之前加载脚本
在测试代码之前加载设置文件仍然很有用。如果您正在设置 Cypress 默认值或使用自定义 Cypress 命令,而不是在每个测试文件中导入/要求这些默认值/命令,可以在每个测试类型的配置对象中使用 supportFile
配置选项。
⚠️ 对于给定的测试类型,多个匹配的 supportFile
文件会导致 Cypress 加载时出错。
与测试文件一样 ,supportFile
可以使用 ES2015+、TypeScript 或 CoffeeScript 和模块,因此您可以根据需要导入/要求其他文件。
命令错误
Cypress 无法在运行中的测试之外执行命令

此消息表示您尝试在当前运行的测试之外执行一个或多个 Cypress 命令。Cypress 必须能够将命令关联到特定测试。
通常这是意外发生的,例如以下情况:
describe('Some Tests', () => {
it('is true', () => {
expect(true).to.be.true // 是的,没问题
})
it('is false', () => {
expect(false).to.be.false // 是的,也没问题
})
context('some nested tests', () => {
// 哎呀,您忘记在这里写 it(...) 了!
// 下面的 Cypress 命令
// 在测试之外运行,Cypress
// 会抛出错误
cy.get('h1').should('contain', 'todos')
})
})
将这些 Cypress 命令移动到 it(...)
块中,一切将正常工作。
如果您有意在测试之外编写命令,可能有更好的方法来实现您的目标。阅读 示例 或查看我们的 支持渠道 获取更多故障排除资源。
cy...()
失败,因为页面已更新
出现此错误意味着您尝试与“死”DOM 元素交互——即当前主题已从 DOM 中移除。

Cypress 出错是因为在命令之后,主题“固定”到特定元素——由于无法重试命令,如果元素从页面分离,我们无法对其断言或交互。
让我们看下面的示例。