«Импорт» не работает с файлом спецификации на Cypress

Если кто-то может помочь мне в этом, пожалуйста.

Я создал объекты страницы со следующим кодом:

class Login {

  username(){
    return cy.get('#UserName').type('test1')
  }
  password(){
    return cy.get('#password-field').type('test2')
  }
  loginbtn(){
    return cy.get('.btn').click()
  }
  
}

экспорт по умолчанию Логин

Здесь я создал класс Login и импортировал его в файл спецификации как:

import Login from '../support/PageObjects/Login'

    beforeEach('Login to shipment page',() => {

        cy.Login()

})

Это работало раньше, но теперь это не работает, и я получаю сообщение об ошибке (при наведении), говорящее: «Логин объявлен, но его значение никогда не читается». Я ничего не изменил. Я сталкиваюсь с этой проблемой много раз, но никогда не получал правильного решения для этого.

Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
1
62
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы должны создать объект класса Login и с его помощью вы можете получить доступ к различным методам. Итак, ваш код должен выглядеть так:

import Login from '../support/PageObjects/Login'
const login = new Login()
beforeEach('Login to shipment page', () => {
  login.username()
  login.password()
  login.loginbtn()
})

Это должно быть как-то связано с вашей пользовательской командой cy.Login(), я думаю, код для этого будет выглядеть примерно так:

// cypress/support/commands.js

const login = new require('../PageObjects/Login.js')

Cypress.Commands.add('Login', () => {
  login.username()
  login.password()
  login.loginbtn()
})

Теперь это, конечно, нужно импортировать в cypress/support/e2e.js, но это по умолчанию — все равно проверьте.

// cypress/support/e2e.js

import './commands.js'

Если вы используете Typescript, параметры аналогичны.

Кстати, из какого файла у вас ошибка? Подозреваю, что это даст подсказку.

У меня была ошибка в файле spect (тестовый файл)

Aishwarya 20.12.2022 06:30

Логин не нужно импортировать, если у вас есть пользовательская команда, такая как cy.Login().

Вот почему возникает ошибка:

«Логин» объявлен, но его значение никогда не читается.

Пользовательские команды являются глобальными для всех тестов и никогда не требуют импорта. Страница входа добавляется в тесты через cy.Login() и вы можете удалить импорт, не затрагивая его.

Другие вопросы по теме