验证cookie cypress抛出'TypeError:cy.chain不是一个函数

问题描述 投票:0回答:1

我正在我的“登录”赛普拉斯测试中验证cookie,但是cypress会抛出以下错误:

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": "[email protected]",
  "password": "test1234"
}
javascript cypress
1个回答
0
投票

错误是正确的; cy.chain()确实不是一个功能。但是,您的命令中存在许多问题:

  1. 除非您打算将此命令链接起来,否则您无需返回任何内容。它当然不会伤害任何东西。
  2. 如前所述,.chain()是不必要的。
  3. 你的url字段需要使用反引号(``)才能使${...}工作。
  4. 您的body字段将包含“电子邮件”和“密码”,而不是您的实际电子邮件和密码。

可能还有其他问题,但这些是我能看到的。

如果没有这些问题,这就是你的命令:

Cypress.Commands.add('login', (email, password) => {
    cy.request({
        method: 'POST',
        form: true,
        url: `${cypress.env("test_server")}`,
        body: `{"${email}", "${password}"}`,
    });
}); 
© www.soinside.com 2019 - 2024. All rights reserved.