我正在下面的“登录”赛普拉斯测试中验证cookie,但是赛普拉斯抛出以下错误:
TypeError:cy.chain不是函数
在'../support/index.js'
下清楚地导入了以下内容:有人可以告知错误原因吗?
import './commands'
柏树测试:
describe("Login test validate cookie", () => {
it.only('Verify the cookies test for login', function() {
cy
.login(Cypress.env('email'), Cypress.env('password'))
cy
.getCookie('csrftoken')
.then((csrftoken) => {
console.log(csrftoken)
})
})
以下是我的“登录”方法/函数../support/commands.js
Cypress.Commands.add('login', (email, password) => {
return cy.chain().request({
method: 'POST',
form: true,
url: '${cypress.env("test_server")}',
body: '{"email", "password"}',
})
});
“ cypress.env.json”文件中提供了以下详细信息
{
"email": "test@soccer.nl",
"password": "test1234"
}
答案 0 :(得分:0)
错误是正确的; cy.chain()
确实不是函数。但是,您的命令中存在许多问题:
.chain()
是不必要的。url
字段需要使用反引号(``)来使${...}
正常工作。body
字段将包含“电子邮件”和“密码”,而不是您的实际电子邮件和密码。可能还有其他问题,但这是我所看到的。
这是没有这些问题的命令的样子:
Cypress.Commands.add('login', (email, password) => {
cy.request({
method: 'POST',
form: true,
url: `${cypress.env("test_server")}`,
body: `{"${email}", "${password}"}`,
});
});