首页 > 解决方案 > 赛普拉斯:“TypeError:form.submit 不是函数”

问题描述

我正在制作一个规范文件来测试我在 Cypress 中的表单,但突然弹出以下信息:

类型错误:form.submit 不是函数 :__cypress/runner/cypress_runner.js:67597:14

这是代码:

cy.get(form).within(($form) => {    

    cy.root().submit();

});

您可以清楚地看到导致错误的部分是cy.root().submit();行。但是当我检查控制台上的元素时,会出现:

控制台上的根输出

所以,它是一种形式!

我从这里得到了代码https://docs.cypress.io/api/commands/within.html#Forms

运行截图:

运行测试

我错过了什么?我可能缺少一些依赖吗?

PD:我正在使用 chrome 79

标签: javascriptcypress

解决方案


您还需要在表单提交之前等待(如果没有那个,路线可能仍在进行中)。

(您可能可以删除然后第二个等待)

编辑:

cy.server();
cy.route(formRequest.method, formRequest.url).as('form-submit');
cy.wait('@form-submit').its('status').should('eq', 200);
cy.root().submit();

推荐阅读