Cypress 中的参数类型 string 不可分配给参数类型 keyof Chainable...

Ole*_*ych 27 javascript typescript cypress

在 Cypress 中更新 9.0.0 后,出现以下错误

参数类型字符串不可分配给参数类型 keyof Chainable...类型字符串不可分配给类型“and”| “作为”| “模糊”| “检查”| “孩子们”| “清晰”| “清除Cookie”| “清除Cookies” | “清除本地存储”| “点击”| “时钟”| ...类型字符串不可分配给类型“拦截”,这会影响我的所有自定义命令

有人可以帮助我吗? 我的自定义命令

Pea*_*iet 43

从版本 9.0.0 开始,您现在必须声明您的自定义命令。请参阅9.0.0 的变更日志(重大更改下的第 6 个要点),并查看有关现在根据此处声明的自定义可链接键入的自定义命令的具体信息。

另外,请参阅此秘籍,了解如何添加自定义命令并正确声明它们。

对于您的自定义命令,请cypress/support/index.d.ts使用以下代码添加此文件:

/// <reference types="cypress" />

declare namespace Cypress {
    interface Chainable<Subject = any> {
        /**
         * Custom command to ... add your description here
         * @example cy.clickOnMyJourneyInCandidateCabinet()
         */
        clickOnMyJourneyInCandidateCabinet(): Chainable<null>;
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 8

在支持/index.d.ts

declare namespace Cypress {
  interface Chainable<Subject = string> {
    preventSubmit(form: string): Chainable<Element>;
  }
}
Run Code Online (Sandbox Code Playgroud)

在支持/command.js

Cypress.Commands.add("preventSubmit", (form) => {
  cy.get(form).then((form$) => {
    form$.on("submit", (e) => {
      e.preventDefault();
    });
  });
  cy.log(`prevent default submit to '${form}'`);
});
Run Code Online (Sandbox Code Playgroud)

在规格/test.js 中

describe("MyTest", () => {
  ...
  it("Test 1", () => {
    ...
    cy.preventSubmit("form");
    cy.get("form").submit();
  }
}
Run Code Online (Sandbox Code Playgroud)