javascript - 调用时无法识别 Cypress 自定义命令

标签 javascript automated-tests cypress

我在我的 cypress/support/commands.js 中创建了以下自定义命令文件。

Cypress.Commands.add("login", (username, password) => {
    cy.request({
        method: 'POST',
        form: true,
        url: '/test/login/',
        body: {'username': username, 'password': password}
    })
})
在将登录功能移至此自定义命令之前,我已通过测试并登录工作。我在我的规范中使用 cy.login(testuser, testpwd) 调用它,但我收到以下错误消息:TypeError: cy.login is not a function . docs say/cypress/support/commands.js 在评估任何测试文件之前加载,所以我认为只需在其中放置自定义命令即可使命令可用。我正在通过本地(GUI)测试运行程序运行测试。

最佳答案

index.js 中的所有代码和引用的模块在您的测试文件之前加载。所以你需要引用(要求)commands.js在您的 index.js文件。
但是,您可以导入 commands.js模块直接在您的测试文件中,但是您需要在每个测试文件中包含它。
推荐的方法是将其包含在 index.js 中文件,您不必担心在测试文件中明确引用。

关于javascript - 调用时无法识别 Cypress 自定义命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47695535/

相关文章:

javascript - 在私有(private)项目之间共享前端组件

javascript - Vue js 在更改路由时重新渲染相同的组件

javascript - 使用 javascript 执行器为 selenium webdriver ruby​​ 绑定(bind)脚本启用禁用字段

docker - 在 Gitlab 管道中完成测试后,Cypress 不会退出

angular - E2E Angular 6 websocket 模拟

cypress - 单击后如何在cypress中等待页面完成重新加载?

javascript - 我们可以使用 javascript 设置 HTML5 标签的属性,如 target 或 src 吗?

javascript - [] 与 [] 不同

selenium - 获取 Appium 1.2 上的所有子元素

button - QTP - 获取按钮值