Чтение тестовых данных.
Добрый день. Пишу тест с использованием 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, время: 14:50. |