typescript 参数类型字符串不能赋值给Cypress中的参数类型keyof Chainable...

aiqt4smr  于 2023-01-06  发布在  TypeScript
关注(0)|答案(2)|浏览(177)

在Cypress中更新9.0.0后,出现以下错误
参数类型字符串不能赋给参数类型keyof Chainable ...类型字符串不能赋给类型"和"| "作为"| "模糊"| "支票"| "儿童"| "清除"| "清除Cookie"| "清除Cookie"| "清除本地存储"| "单击"| "时钟"| ...类型字符串不能分配给类型"intercept",这会影响我的所有自定义命令
有人能帮帮我吗?

cidc1ykv

cidc1ykv1#

从9.0.0版本开始,您现在必须声明自定义命令。请查看9.0.0的更改日志(突破性更改下的第6个项目符号),并查看有关现在基于已声明的自定义可链接here键入的自定义命令的具体信息。
另外,请参阅recipe,了解如何添加自定义命令并正确声明它们。
对于自定义命令,请使用以下代码添加此文件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>;
    }
}
cbeh67ev

cbeh67ev2#

支持/索引.d.ts

declare namespace Cypress {
  interface Chainable<Subject = string> {
    preventSubmit(form: string): Chainable<Element>;
  }
}

在支持/命令. js中

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

在规范/测试. js中

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

相关问题