Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.05.2022, 19:02
Новичок на форуме
Отправить личное сообщение для JaneGame Посмотреть профиль Найти все сообщения от JaneGame
 
Регистрация: 13.01.2022
Сообщений: 7

Чтение тестовых данных.
Добрый день. Пишу тест с использованием playwrith. Задание почти решено, но не могу сделать так, чтобы мои тесты читали данные из файла.
Вот код:
const user = require('../user.js');

const { test, expect, chromium } = require('@playwright/test');

//

test('goodAutorisation', async ({page}) => {
  //const browser = chromium.launch({headless: false, slowMo: 5000});
  //const page = await browser.newPage();
  test.setTimeout(120000);
  await page.goto('https://netology.ru/?modal=sign_in', { timeout: 60000 });
  await page.pause();

  // Click [placeholder="Email"]
  await page.locator('[placeholder="Email"]').click();

  // Fill [placeholder="Email"]
  await page.locator('[placeholder="Email"]').fill(user.username);

  // Click [placeholder="Пароль"]
  await page.locator('[placeholder="Пароль"]').click();

  // Fill [placeholder="Пароль"]
  await page.locator('[placeholder="Пароль"]').fill(user.password);

  // Click [data-testid="login-submit-btn"]
  await Promise.all([
    page.waitForNavigation( /*{ url: 'https://netology.ru/profile' }*/),
    page.locator('[data-testid="login-submit-btn"]').click()
  ]);

  await expect().locator('[data-testid="menu-userface"] div');
  await browser.close();
});


Вот то, что стоит в файле:
const username = '123@mail.ru';
const password = '12345';


Пыталась вывести через функцию:
function username() {
   return '123@mail.ru';
 }


Через сетеры:
// let user = {
//   username : '123@mail.ru',
//   password: '12345',
  
//   get username() {
//     return `${this.username}`;  
//   },

//   set username(value) {
//     [this.username] = value.split(' ');
//   }
// };


Во всех случаях при запуске теста выводится
TypeError: Cannot read properties of undefined (reading 'username')
или
locator.fill: value: expected string, got undefined


Помогите, пожалуйста, разобраться!
Ответить с цитированием
  #2 (permalink)  
Старый 20.05.2022, 20:30
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Первая ошибка переводится примерно так: «Не удается прочитать свойства у undefined (читаю 'username')».
Ошибка связана с тем, что вы пытаетесь прочитать свойство «username» у undefined.

Вторая ошибка переводится как «Ожидалась строка, а получен undefined».
Т.е. метод «fill» класса «Locator» ожидал, что первым аргументом ему будет передана строка, а вы передали ему undefined.

Обе ошибки связаны с тем, что у вас, вероятно, не импортировались данные из файла user.js, т.е. в переменной user вместо каких-то данных содержится undefined.
Это в свою очередь связано с тем, что вы никак не экспортируете данные из файла user.js.

Попробуйте изменить содержимое файла user.js на это:
const username = '123@mail.ru';
const password = '12345';

module.exports = {
    username,
    password,
};


P.S. я плохо помню как устроен экспорт модулей в CommonJs, мог ошибиться.

Последний раз редактировалось Nexus, 20.05.2022 в 20:41. Причина: Дополнил ответ
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2022, 00:16
Новичок на форуме
Отправить личное сообщение для JaneGame Посмотреть профиль Найти все сообщения от JaneGame
 
Регистрация: 13.01.2022
Сообщений: 7

Спасибо огромнейшее! Тест наконец-то смог пойти дальше=)))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и вывод данных из нескольких файлов Nikc174 Элементы интерфейса 7 15.06.2018 15:54
Чтение данных из файла в массив TheSingleElk Общие вопросы Javascript 2 16.06.2016 01:09
Чтение данных из Excel при загрузке страницы paulsk Общие вопросы Javascript 3 09.01.2015 13:46
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
чтение данных в IE nikolaich ExtJS 2 11.01.2011 12:33