Чтение тестовых данных.
Добрый день. Пишу тест с использованием 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 Помогите, пожалуйста, разобраться! |
Первая ошибка переводится примерно так: «Не удается прочитать свойства у 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, мог ошибиться. |
Спасибо огромнейшее! Тест наконец-то смог пойти дальше=)))
|
Часовой пояс GMT +3, время: 18:13. |