Добавлены NewsAdminPage с описанием раздела Новости и admin-news-positive.spec с позитивным сценарием
@@ -0,0 +1,606 @@
|
||||
# Test info
|
||||
|
||||
- Name: Панель администратора — Новости (позитивный сценарий) >> Успешное добавление новости с изображением
|
||||
- Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:5:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
Call log:
|
||||
- waiting for getByRole('link', { name: 'Панель администратора' })
|
||||
|
||||
at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:14:69
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- main:
|
||||
- img "logo"
|
||||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||||
- list:
|
||||
- listitem: Панель администратора
|
||||
- listitem: Автору
|
||||
- listitem: Участники
|
||||
- listitem: Оргкомитет
|
||||
- listitem: Личный кабинет
|
||||
- img "Background"
|
||||
- main:
|
||||
- paragraph: 19 - 26 июня 2025 года Таганрог
|
||||
- list
|
||||
- img "Background"
|
||||
- button "Подать заявку"
|
||||
- img "Background"
|
||||
- paragraph: / ЭТАПЫ ПРОВЕДЕНИЯ КОНФЕРЕНЦИИ /
|
||||
- list:
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- paragraph: НАШИ КОНФЕРЕНЦИИ ПРОХОДЯТ С ПОЛЬЗОЙ НЕ ТОЛЬКО ДЛЯ РАЗВИТИЯ, НО И ДЛЯ ЗДОРОВЬЯ!
|
||||
- paragraph: О конференции
|
||||
- paragraph: НАПРАВЛЕНИЯ РАБОТЫ КОНФЕРЕНЦИИ
|
||||
- paragraph: Направление
|
||||
- paragraph: ewfewf
|
||||
- paragraph: ewfewfewfwef
|
||||
- img "ewfewf"
|
||||
- button "Все новости img":
|
||||
- text: Все новости
|
||||
- img "img"
|
||||
- paragraph: Организаторы
|
||||
- img "Organization1"
|
||||
- paragraph: Партнёры
|
||||
- img "Organization1"
|
||||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||||
- paragraph: 19 - 26 июня 2025 года Таганрог
|
||||
- paragraph: "Напишите нам:"
|
||||
- paragraph:
|
||||
- text: "e-mail:"
|
||||
- link "ssas@ictis.sfedu.ru":
|
||||
- /url: mailto:ssas@ictis.sfedu.ru
|
||||
- text: Сайт разработан Центром исследований и разработки ИКТИБ
|
||||
- link "Ознакомиться с руководством пользователя":
|
||||
- /url: /static/media/user_manual.f1df94e2c5143919fb0d.pdf
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
1 | import { test, expect } from '@playwright/test';
|
||||
2 | import path from 'path';
|
||||
3 |
|
||||
4 | test.describe('Панель администратора — Новости (позитивный сценарий)', () => {
|
||||
5 | test('Успешное добавление новости с изображением', async ({ page }) => {
|
||||
6 | // 1. Авторизация как администратор
|
||||
7 | await page.goto('https://ssas.dev.rdcenter.ru/login/authorization');
|
||||
8 | await page.getByPlaceholder('Email').fill('admin@sfedu.ru');
|
||||
9 | await page.getByPlaceholder('Пароль').fill('dfDk1oQQ6YGV@');
|
||||
10 | await page.getByRole('button', { name: 'Войти', exact: true }).click();
|
||||
11 |
|
||||
12 | // 2. Переход в раздел "Панель администратора" → "Новости"
|
||||
13 | await page.waitForURL('**/');
|
||||
> 14 | await page.getByRole('link', { name: 'Панель администратора' }).click();
|
||||
| ^ Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
15 | await page.waitForURL('**/adminPage/news');
|
||||
16 |
|
||||
17 | // 3. Нажатие кнопки "Добавить новость"
|
||||
18 | await page.getByRole('button', { name: 'Добавить новость' }).click();
|
||||
19 |
|
||||
20 | // 4. Заполнение формы
|
||||
21 | const title = `Тестовая новость ${Date.now()}`;
|
||||
22 | const content = 'Это автотестовая новость для проверки добавления.';
|
||||
23 | const imagePath = path.resolve(__dirname, '../../../test-data/image_1mb.png');
|
||||
24 |
|
||||
25 | await page.getByPlaceholder('Заголовок').fill(title);
|
||||
26 | await page.getByPlaceholder('Текст новости').fill(content);
|
||||
27 |
|
||||
28 | // 5. Загрузка изображения
|
||||
29 | const fileInput = await page.locator('input[type="file"]');
|
||||
30 | await fileInput.setInputFiles(imagePath);
|
||||
31 |
|
||||
32 | // 6. Нажатие на кнопку "Добавить"
|
||||
33 | await page.getByRole('button', { name: 'Добавить' }).click();
|
||||
34 |
|
||||
35 | // 7. Проверка, что новость появилась в списке
|
||||
36 | await expect(page.locator('table')).toContainText(title);
|
||||
37 | });
|
||||
38 | });
|
||||
39 |
|
||||
```
|
||||
|
After Width: | Height: | Size: 3.8 MiB |
@@ -0,0 +1,59 @@
|
||||
# Test info
|
||||
|
||||
- Name: Панель администратора — Новости (позитивный сценарий) >> Успешное добавление новости с изображением
|
||||
- Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:5:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: locator.fill: Target page, context or browser has been closed
|
||||
Call log:
|
||||
- waiting for getByPlaceholder('Email')
|
||||
|
||||
at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:8:42
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
1 | import { test, expect } from '@playwright/test';
|
||||
2 | import path from 'path';
|
||||
3 |
|
||||
4 | test.describe('Панель администратора — Новости (позитивный сценарий)', () => {
|
||||
5 | test('Успешное добавление новости с изображением', async ({ page }) => {
|
||||
6 | // 1. Авторизация как администратор
|
||||
7 | await page.goto('https://ssas.dev.rdcenter.ru/login');
|
||||
> 8 | await page.getByPlaceholder('Email').fill('admin@sfedu.ru');
|
||||
| ^ Error: locator.fill: Target page, context or browser has been closed
|
||||
9 | await page.getByPlaceholder('Пароль').fill('dfDk1oQQ6YGV@');
|
||||
10 | await page.getByRole('button', { name: 'Войти' }).click();
|
||||
11 |
|
||||
12 | // 2. Переход в раздел "Панель администратора" → "Новости"
|
||||
13 | await page.waitForURL('**/main');
|
||||
14 | await page.getByRole('link', { name: 'Панель администратора' }).click();
|
||||
15 | await page.waitForURL('**/adminPage/news');
|
||||
16 |
|
||||
17 | // 3. Нажатие кнопки "Добавить новость"
|
||||
18 | await page.getByRole('button', { name: 'Добавить новость' }).click();
|
||||
19 |
|
||||
20 | // 4. Заполнение формы
|
||||
21 | const title = `Тестовая новость ${Date.now()}`;
|
||||
22 | const content = 'Это автотестовая новость для проверки добавления.';
|
||||
23 | const imagePath = path.resolve(__dirname, '../../../test-data/image_1mb.png');
|
||||
24 |
|
||||
25 | await page.getByPlaceholder('Заголовок').fill(title);
|
||||
26 | await page.getByPlaceholder('Текст новости').fill(content);
|
||||
27 |
|
||||
28 | // 5. Загрузка изображения
|
||||
29 | const fileInput = await page.locator('input[type="file"]');
|
||||
30 | await fileInput.setInputFiles(imagePath);
|
||||
31 |
|
||||
32 | // 6. Нажатие на кнопку "Добавить"
|
||||
33 | await page.getByRole('button', { name: 'Добавить' }).click();
|
||||
34 |
|
||||
35 | // 7. Проверка, что новость появилась в списке
|
||||
36 | await expect(page.locator('table')).toContainText(title);
|
||||
37 | });
|
||||
38 | });
|
||||
39 |
|
||||
```
|
||||
@@ -0,0 +1,606 @@
|
||||
# Test info
|
||||
|
||||
- Name: Панель администратора — Новости (позитивный сценарий) >> Успешное добавление новости с изображением
|
||||
- Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:5:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
Call log:
|
||||
- waiting for getByRole('link', { name: 'Панель администратора' })
|
||||
|
||||
at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:14:69
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- main:
|
||||
- img "logo"
|
||||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||||
- list:
|
||||
- listitem: Панель администратора
|
||||
- listitem: Автору
|
||||
- listitem: Участники
|
||||
- listitem: Оргкомитет
|
||||
- listitem: Личный кабинет
|
||||
- img "Background"
|
||||
- main:
|
||||
- paragraph: 19 - 26 июня 2025 года Таганрог
|
||||
- list
|
||||
- img "Background"
|
||||
- button "Подать заявку"
|
||||
- img "Background"
|
||||
- paragraph: / ЭТАПЫ ПРОВЕДЕНИЯ КОНФЕРЕНЦИИ /
|
||||
- list:
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- paragraph: НАШИ КОНФЕРЕНЦИИ ПРОХОДЯТ С ПОЛЬЗОЙ НЕ ТОЛЬКО ДЛЯ РАЗВИТИЯ, НО И ДЛЯ ЗДОРОВЬЯ!
|
||||
- paragraph: О конференции
|
||||
- paragraph: НАПРАВЛЕНИЯ РАБОТЫ КОНФЕРЕНЦИИ
|
||||
- paragraph: Направление
|
||||
- paragraph: ewfewf
|
||||
- paragraph: ewfewfewfwef
|
||||
- img "ewfewf"
|
||||
- button "Все новости img":
|
||||
- text: Все новости
|
||||
- img "img"
|
||||
- paragraph: Организаторы
|
||||
- img "Organization1"
|
||||
- paragraph: Партнёры
|
||||
- img "Organization1"
|
||||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||||
- paragraph: 19 - 26 июня 2025 года Таганрог
|
||||
- paragraph: "Напишите нам:"
|
||||
- paragraph:
|
||||
- text: "e-mail:"
|
||||
- link "ssas@ictis.sfedu.ru":
|
||||
- /url: mailto:ssas@ictis.sfedu.ru
|
||||
- text: Сайт разработан Центром исследований и разработки ИКТИБ
|
||||
- link "Ознакомиться с руководством пользователя":
|
||||
- /url: /static/media/user_manual.f1df94e2c5143919fb0d.pdf
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
1 | import { test, expect } from '@playwright/test';
|
||||
2 | import path from 'path';
|
||||
3 |
|
||||
4 | test.describe('Панель администратора — Новости (позитивный сценарий)', () => {
|
||||
5 | test('Успешное добавление новости с изображением', async ({ page }) => {
|
||||
6 | // 1. Авторизация как администратор
|
||||
7 | await page.goto('https://ssas.dev.rdcenter.ru/login/authorization');
|
||||
8 | await page.getByPlaceholder('Email').fill('admin@sfedu.ru');
|
||||
9 | await page.getByPlaceholder('Пароль').fill('dfDk1oQQ6YGV@');
|
||||
10 | await page.getByRole('button', { name: 'Войти', exact: true }).click();
|
||||
11 |
|
||||
12 | // 2. Переход в раздел "Панель администратора" → "Новости"
|
||||
13 | await page.waitForURL('**/');
|
||||
> 14 | await page.getByRole('link', { name: 'Панель администратора' }).click();
|
||||
| ^ Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
15 | await page.waitForURL('**/adminPage/news');
|
||||
16 |
|
||||
17 | // 3. Нажатие кнопки "Добавить новость"
|
||||
18 | await page.getByRole('button', { name: 'Добавить новость' }).click();
|
||||
19 |
|
||||
20 | // 4. Заполнение формы
|
||||
21 | const title = `Тестовая новость ${Date.now()}`;
|
||||
22 | const content = 'Это автотестовая новость для проверки добавления.';
|
||||
23 | const imagePath = path.resolve(__dirname, '../../../test-data/image_1mb.png');
|
||||
24 |
|
||||
25 | await page.getByPlaceholder('Заголовок').fill(title);
|
||||
26 | await page.getByPlaceholder('Текст новости').fill(content);
|
||||
27 |
|
||||
28 | // 5. Загрузка изображения
|
||||
29 | const fileInput = await page.locator('input[type="file"]');
|
||||
30 | await fileInput.setInputFiles(imagePath);
|
||||
31 |
|
||||
32 | // 6. Нажатие на кнопку "Добавить"
|
||||
33 | await page.getByRole('button', { name: 'Добавить' }).click();
|
||||
34 |
|
||||
35 | // 7. Проверка, что новость появилась в списке
|
||||
36 | await expect(page.locator('table')).toContainText(title);
|
||||
37 | });
|
||||
38 | });
|
||||
39 |
|
||||
```
|
||||
@@ -0,0 +1,79 @@
|
||||
# Test info
|
||||
|
||||
- Name: Панель администратора — Новости (позитивный сценарий) >> Успешное добавление новости с изображением
|
||||
- Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:5:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: locator.click: Target page, context or browser has been closed
|
||||
Call log:
|
||||
- waiting for getByRole('button', { name: 'Добавить' })
|
||||
- locator resolved to <button class="AddNews_addNews__5VNyQ">Добавить</button>
|
||||
- attempting click action
|
||||
2 × waiting for element to be visible, enabled and stable
|
||||
- element is visible, enabled and stable
|
||||
- scrolling into view if needed
|
||||
- done scrolling
|
||||
- <div class="ImageCropper_editPhoto__BuumR">…</div> from <div class="ImageCropper_ImageCropper__8H9sV">…</div> subtree intercepts pointer events
|
||||
- retrying click action
|
||||
- waiting 20ms
|
||||
- waiting for element to be visible, enabled and stable
|
||||
- element is visible, enabled and stable
|
||||
- scrolling into view if needed
|
||||
- done scrolling
|
||||
- <div class="ImageCropper_editPhoto__BuumR">…</div> from <div class="ImageCropper_ImageCropper__8H9sV">…</div> subtree intercepts pointer events
|
||||
- retrying click action
|
||||
- waiting 100ms
|
||||
- waiting for element to be visible, enabled and stable
|
||||
- element is visible, enabled and stable
|
||||
- scrolling into view if needed
|
||||
- done scrolling
|
||||
|
||||
at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:33:58
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
1 | import { test, expect } from '@playwright/test';
|
||||
2 | import path from 'path';
|
||||
3 |
|
||||
4 | test.describe('Панель администратора — Новости (позитивный сценарий)', () => {
|
||||
5 | test('Успешное добавление новости с изображением', async ({ page }) => {
|
||||
6 | // 1. Авторизация как администратор
|
||||
7 | await page.goto('https://ssas.dev.rdcenter.ru/login/authorization');
|
||||
8 | await page.getByPlaceholder('Email').fill('admin@sfedu.ru');
|
||||
9 | await page.getByPlaceholder('Пароль').fill('dfDk1oQQ6YGV@');
|
||||
10 | await page.getByRole('button', { name: 'Войти', exact: true }).click();
|
||||
11 |
|
||||
12 | // 2. Переход в раздел "Панель администратора" → "Новости"
|
||||
13 | await page.waitForURL('**/');
|
||||
14 | await page.getByText('Панель администратора').click();
|
||||
15 | await page.waitForURL('**/adminPage/news');
|
||||
16 |
|
||||
17 | // 3. Нажатие кнопки "Добавить новость"
|
||||
18 | await page.getByRole('button', { name: 'Добавить новость' }).click();
|
||||
19 |
|
||||
20 | // 4. Заполнение формы
|
||||
21 | const title = `Тестовая новость ${Date.now()}`;
|
||||
22 | const content = 'Это автотестовая новость для проверки добавления.';
|
||||
23 | const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png');
|
||||
24 |
|
||||
25 | await page.getByPlaceholder('Заголовок').fill(title);
|
||||
26 | await page.getByPlaceholder('Текст новости').fill(content);
|
||||
27 |
|
||||
28 | // 5. Загрузка изображения
|
||||
29 | const fileInput = await page.locator('input[type="file"]');
|
||||
30 | await fileInput.setInputFiles(imagePath);
|
||||
31 |
|
||||
32 | // 6. Нажатие на кнопку "Добавить"
|
||||
> 33 | await page.getByRole('button', { name: 'Добавить' }).click();
|
||||
| ^ Error: locator.click: Target page, context or browser has been closed
|
||||
34 |
|
||||
35 | // 7. Проверка, что новость появилась в списке
|
||||
36 | await expect(page.locator('table')).toContainText(title);
|
||||
37 | });
|
||||
38 | });
|
||||
39 |
|
||||
```
|
||||
|
After Width: | Height: | Size: 913 KiB |
|
After Width: | Height: | Size: 56 KiB |
@@ -0,0 +1,606 @@
|
||||
# Test info
|
||||
|
||||
- Name: Панель администратора — Новости (позитивный сценарий) >> Успешное добавление новости с изображением
|
||||
- Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:5:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
Call log:
|
||||
- waiting for getByRole('link', { name: 'Панель администратора' })
|
||||
|
||||
at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-positive.spec.ts:14:69
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- main:
|
||||
- img "logo"
|
||||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||||
- list:
|
||||
- listitem: Панель администратора
|
||||
- listitem: Автору
|
||||
- listitem: Участники
|
||||
- listitem: Оргкомитет
|
||||
- listitem: Личный кабинет
|
||||
- img "Background"
|
||||
- main:
|
||||
- paragraph: 19 - 26 июня 2025 года Таганрог
|
||||
- list
|
||||
- img "Background"
|
||||
- button "Подать заявку"
|
||||
- img "Background"
|
||||
- paragraph: / ЭТАПЫ ПРОВЕДЕНИЯ КОНФЕРЕНЦИИ /
|
||||
- list:
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- listitem:
|
||||
- text: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- paragraph
|
||||
- img
|
||||
- paragraph: НАШИ КОНФЕРЕНЦИИ ПРОХОДЯТ С ПОЛЬЗОЙ НЕ ТОЛЬКО ДЛЯ РАЗВИТИЯ, НО И ДЛЯ ЗДОРОВЬЯ!
|
||||
- paragraph: О конференции
|
||||
- paragraph: НАПРАВЛЕНИЯ РАБОТЫ КОНФЕРЕНЦИИ
|
||||
- paragraph: Направление
|
||||
- paragraph: ewfewf
|
||||
- paragraph: ewfewfewfwef
|
||||
- img "ewfewf"
|
||||
- button "Все новости img":
|
||||
- text: Все новости
|
||||
- img "img"
|
||||
- paragraph: Организаторы
|
||||
- img "Organization1"
|
||||
- paragraph: Партнёры
|
||||
- img "Organization1"
|
||||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||||
- paragraph: 19 - 26 июня 2025 года Таганрог
|
||||
- paragraph: "Напишите нам:"
|
||||
- paragraph:
|
||||
- text: "e-mail:"
|
||||
- link "ssas@ictis.sfedu.ru":
|
||||
- /url: mailto:ssas@ictis.sfedu.ru
|
||||
- text: Сайт разработан Центром исследований и разработки ИКТИБ
|
||||
- link "Ознакомиться с руководством пользователя":
|
||||
- /url: /static/media/user_manual.f1df94e2c5143919fb0d.pdf
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
1 | import { test, expect } from '@playwright/test';
|
||||
2 | import path from 'path';
|
||||
3 |
|
||||
4 | test.describe('Панель администратора — Новости (позитивный сценарий)', () => {
|
||||
5 | test('Успешное добавление новости с изображением', async ({ page }) => {
|
||||
6 | // 1. Авторизация как администратор
|
||||
7 | await page.goto('https://ssas.dev.rdcenter.ru/login/authorization');
|
||||
8 | await page.getByPlaceholder('Email').fill('admin@sfedu.ru');
|
||||
9 | await page.getByPlaceholder('Пароль').fill('dfDk1oQQ6YGV@');
|
||||
10 | await page.getByRole('button', { name: 'Войти', exact: true }).click();
|
||||
11 |
|
||||
12 | // 2. Переход в раздел "Панель администратора" → "Новости"
|
||||
13 | await page.waitForURL('**/');
|
||||
> 14 | await page.getByRole('link', { name: 'Панель администратора' }).click();
|
||||
| ^ Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
15 | await page.waitForURL('**/adminPage/news');
|
||||
16 |
|
||||
17 | // 3. Нажатие кнопки "Добавить новость"
|
||||
18 | await page.getByRole('button', { name: 'Добавить новость' }).click();
|
||||
19 |
|
||||
20 | // 4. Заполнение формы
|
||||
21 | const title = `Тестовая новость ${Date.now()}`;
|
||||
22 | const content = 'Это автотестовая новость для проверки добавления.';
|
||||
23 | const imagePath = path.resolve(__dirname, '../../../test-data/image_1mb.png');
|
||||
24 |
|
||||
25 | await page.getByPlaceholder('Заголовок').fill(title);
|
||||
26 | await page.getByPlaceholder('Текст новости').fill(content);
|
||||
27 |
|
||||
28 | // 5. Загрузка изображения
|
||||
29 | const fileInput = await page.locator('input[type="file"]');
|
||||
30 | await fileInput.setInputFiles(imagePath);
|
||||
31 |
|
||||
32 | // 6. Нажатие на кнопку "Добавить"
|
||||
33 | await page.getByRole('button', { name: 'Добавить' }).click();
|
||||
34 |
|
||||
35 | // 7. Проверка, что новость появилась в списке
|
||||
36 | await expect(page.locator('table')).toContainText(title);
|
||||
37 | });
|
||||
38 | });
|
||||
39 |
|
||||
```
|
||||
|
After Width: | Height: | Size: 1.2 MiB |
103
page-objects/NewsAdminPage.ts
Normal file
@@ -0,0 +1,103 @@
|
||||
import { Page, Locator } from '@playwright/test';
|
||||
import path from 'path';
|
||||
|
||||
export class NewsAdminPage {
|
||||
readonly page: Page;
|
||||
|
||||
// Авторизация
|
||||
readonly emailInput: Locator;
|
||||
readonly passwordInput: Locator;
|
||||
readonly loginButton: Locator;
|
||||
|
||||
// Навигация
|
||||
readonly adminPanelLink: Locator;
|
||||
|
||||
// Элементы добавления новости
|
||||
readonly addNewsButton: Locator;
|
||||
readonly titleTextarea: Locator;
|
||||
readonly contentTextarea: Locator;
|
||||
readonly fileInput: Locator;
|
||||
readonly cropSaveButton: Locator;
|
||||
readonly confirmAddButton: Locator;
|
||||
|
||||
// Таблица новостей
|
||||
readonly newsTable: Locator;
|
||||
|
||||
// Ошибки
|
||||
readonly emptyTitleError: Locator;
|
||||
readonly emptyContentError: Locator;
|
||||
|
||||
constructor(page: Page) {
|
||||
this.page = page;
|
||||
|
||||
// Авторизация
|
||||
this.emailInput = page.getByPlaceholder('Email');
|
||||
this.passwordInput = page.getByPlaceholder('Пароль');
|
||||
this.loginButton = page.getByRole('button', { name: 'Войти', exact: true });
|
||||
|
||||
// Навигация
|
||||
this.adminPanelLink = page.getByText('Панель администратора');
|
||||
|
||||
// Форма добавления новости
|
||||
this.addNewsButton = page.getByRole('button', { name: 'Добавить новость' });
|
||||
this.titleTextarea = page.getByPlaceholder('Заголовок');
|
||||
this.contentTextarea = page.getByPlaceholder('Текст новости');
|
||||
this.fileInput = page.locator('input[type="file"]');
|
||||
this.cropSaveButton = page.getByRole('button', { name: 'Сохранить' });
|
||||
this.confirmAddButton = page.getByRole('button', { name: 'Добавить' });
|
||||
|
||||
// Таблица новостей
|
||||
this.newsTable = page.locator('table');
|
||||
|
||||
// Ошибки валидации
|
||||
this.emptyTitleError = page.getByText('Заголовок новости не может быть пустым.');
|
||||
this.emptyContentError = page.getByText('Текст новости не может быть пустым.');
|
||||
}
|
||||
|
||||
async loginAsAdmin() {
|
||||
await this.page.goto('https://ssas.dev.rdcenter.ru/login/authorization');
|
||||
await this.emailInput.fill('admin@sfedu.ru');
|
||||
await this.passwordInput.fill('dfDk1oQQ6YGV@');
|
||||
await this.loginButton.click();
|
||||
}
|
||||
|
||||
async navigateToNewsSection() {
|
||||
await this.page.waitForURL('**/');
|
||||
await this.adminPanelLink.click();
|
||||
await this.page.waitForURL('**/adminPage/news');
|
||||
}
|
||||
|
||||
async goto() {
|
||||
await this.page.waitForURL('**/');
|
||||
await this.adminPanelLink.click();
|
||||
await this.page.waitForURL('**/adminPage/news');
|
||||
}
|
||||
|
||||
async addNews(params: { title: string; content: string; imagePath: string }) {
|
||||
const { title, content, imagePath } = params;
|
||||
|
||||
await this.addNewsButton.click();
|
||||
await this.titleTextarea.fill(title);
|
||||
await this.contentTextarea.fill(content);
|
||||
|
||||
await this.fileInput.setInputFiles(imagePath);
|
||||
await this.cropSaveButton.click();
|
||||
await this.confirmAddButton.click();
|
||||
}
|
||||
|
||||
async verifyNewsAppears(title: string) {
|
||||
await this.page.waitForLoadState('networkidle');
|
||||
await this.newsTable.waitFor();
|
||||
await this.page.getByText(title).waitFor({ state: 'visible' });
|
||||
}
|
||||
|
||||
async addEmptyNews() {
|
||||
await this.addNewsButton.click();
|
||||
await this.confirmAddButton.click();
|
||||
}
|
||||
|
||||
async verifyValidationErrors() {
|
||||
await this.emptyTitleError.waitFor({ state: 'visible' });
|
||||
await this.emptyContentError.waitFor({ state: 'visible' });
|
||||
}
|
||||
}
|
||||
39
tests/ui/admin/news/admin-news-positive.spec.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import path from 'path';
|
||||
|
||||
test.describe('Панель администратора — Новости (позитивный сценарий)', () => {
|
||||
test('Успешное добавление новости с изображением', async ({ page }) => {
|
||||
// 1. Авторизация как администратор
|
||||
await page.goto('https://ssas.dev.rdcenter.ru/login/authorization');
|
||||
await page.getByPlaceholder('Email').fill('admin@sfedu.ru');
|
||||
await page.getByPlaceholder('Пароль').fill('dfDk1oQQ6YGV@');
|
||||
await page.getByRole('button', { name: 'Войти', exact: true }).click();
|
||||
|
||||
// 2. Переход в раздел "Панель администратора" → "Новости"
|
||||
await page.waitForURL('**/');
|
||||
await page.getByText('Панель администратора').click();
|
||||
await page.waitForURL('**/adminPage/news');
|
||||
|
||||
// 3. Нажатие кнопки "Добавить новость"
|
||||
await page.getByRole('button', { name: 'Добавить новость' }).click();
|
||||
|
||||
// 4. Заполнение формы
|
||||
const title = `Тестовая новость ${Date.now()}`;
|
||||
const content = 'Это автотестовая новость для проверки добавления.';
|
||||
const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png');
|
||||
|
||||
await page.getByPlaceholder('Заголовок').fill(title);
|
||||
await page.getByPlaceholder('Текст новости').fill(content);
|
||||
|
||||
// 5. Загрузка изображения
|
||||
const fileInput = await page.locator('input[type="file"]');
|
||||
await fileInput.setInputFiles(imagePath);
|
||||
await page.getByRole('button', { name: 'Сохранить' }).click();
|
||||
|
||||
// 6. Нажатие на кнопку "Добавить"
|
||||
await page.getByRole('button', { name: 'Добавить' }).click();
|
||||
|
||||
// 7. Проверка, что новость появилась в списке
|
||||
await expect(page.locator('table')).toContainText(title);
|
||||
});
|
||||
});
|
||||
BIN
utils/test-data/image_100mb.png
Normal file
|
After Width: | Height: | Size: 111 MiB |
BIN
utils/test-data/image_11mb.png
Normal file
|
After Width: | Height: | Size: 11 MiB |
BIN
utils/test-data/image_19mb.png
Normal file
|
After Width: | Height: | Size: 20 MiB |
BIN
utils/test-data/image_1mb.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
utils/test-data/image_45mb.png
Normal file
|
After Width: | Height: | Size: 52 MiB |
BIN
utils/test-data/image_5mb.png
Normal file
|
After Width: | Height: | Size: 5.3 MiB |