在 Cypress runner 中出现 'cy.session is not a function' 错误
Getting 'cy.session is not a function' error in Cypress runner
我正在尝试按照此处的 this 文章将 cy.session() 添加到我的登录功能。但是,当我这样做然后 运行 我的测试时,我得到错误 cy.session is not a function
我在我的 cypress.json 配置文件中设置了 "experimentalSessionSupport": true
(并确认我的测试也将此值视为 true)。根据我的理解,这应该是我需要做的全部,但显然我遗漏了一些东西。
我使用的是 Cypress 9.4.1 版。我试过创建一个自定义登录命令(与文章中的完全一样)但是 运行 宁它时只是得到同样的错误。
我的测试在没有 cy.session()
命令的情况下完美运行。
login.js:
class LoginPage {
...
login(username, password) {
cy.session([username, password], () => {
cy.visit('/login');
this.emailField.type(username);
this.passwordField.type(password);
this.loginButton.click();
});
}
}
export default new LoginPage();
cypress.json:
{
...
"experimentalSessionSupport": true
}
是否是 Typescript 错误 - TypeError: cy.[custom command] is not a function
?
如果是这样,由于实验性的原因,类型定义可能尚未添加。
在测试顶部添加与自定义命令相同的定义。
这取自最新版本。
declare namespace Cypress {
interface SessionOptions {
validate?: () => false | void
}
interface Chainable<Subject = any> {
session(
id: string | object,
setup?: SessionOptions['validate'],
options?: SessionOptions
): Chainable<null>
}
}
I'm using Cypress version 9.4.1.
好吧,事实并非如此。我还在使用不支持 cy.session() 的版本。我这边犯了愚蠢的错误。自升级 Cypress 以来,现在一切正常。
我正在尝试按照此处的 this 文章将 cy.session() 添加到我的登录功能。但是,当我这样做然后 运行 我的测试时,我得到错误 cy.session is not a function
我在我的 cypress.json 配置文件中设置了 "experimentalSessionSupport": true
(并确认我的测试也将此值视为 true)。根据我的理解,这应该是我需要做的全部,但显然我遗漏了一些东西。
我使用的是 Cypress 9.4.1 版。我试过创建一个自定义登录命令(与文章中的完全一样)但是 运行 宁它时只是得到同样的错误。
我的测试在没有 cy.session()
命令的情况下完美运行。
login.js:
class LoginPage {
...
login(username, password) {
cy.session([username, password], () => {
cy.visit('/login');
this.emailField.type(username);
this.passwordField.type(password);
this.loginButton.click();
});
}
}
export default new LoginPage();
cypress.json:
{
...
"experimentalSessionSupport": true
}
是否是 Typescript 错误 - TypeError: cy.[custom command] is not a function
?
如果是这样,由于实验性的原因,类型定义可能尚未添加。
在测试顶部添加与自定义命令相同的定义。
这取自最新版本。
declare namespace Cypress {
interface SessionOptions {
validate?: () => false | void
}
interface Chainable<Subject = any> {
session(
id: string | object,
setup?: SessionOptions['validate'],
options?: SessionOptions
): Chainable<null>
}
}
I'm using Cypress version 9.4.1.
好吧,事实并非如此。我还在使用不支持 cy.session() 的版本。我这边犯了愚蠢的错误。自升级 Cypress 以来,现在一切正常。