mirror of
https://github.com/LazarenkoA/Ox.git
synced 2025-11-23 21:33:13 +02:00
72 lines
4.2 KiB
JavaScript
72 lines
4.2 KiB
JavaScript
|
|
import { test, expect } from '@playwright/test';
|
||
|
|
|
||
|
|
test('test', async ({ page }) => {
|
||
|
|
await page.goto('http://localhost/bsp/ru_RU/');
|
||
|
|
await page.locator('#userName').click();
|
||
|
|
await page.locator('#userName').fill('Администратор');
|
||
|
|
await page.locator('#userName').press('Tab');
|
||
|
|
await page.locator('#userPassword').fill('123');
|
||
|
|
await page.locator('#userPassword').press('Enter');
|
||
|
|
|
||
|
|
await page.locator('#themesCell_theme_3').getByText('Сервисные подсистемы').click();
|
||
|
|
await page.locator('#cmd_0_6_txt').click();
|
||
|
|
await page.locator('div:nth-child(4) > div:nth-child(2) > .gridBoxTitle').click();
|
||
|
|
await page.getByText('АОЗТ Лабан').dblclick();
|
||
|
|
await page.locator('[id="form5_ФормаЗаписатьИЗакрыть"]').click();
|
||
|
|
await page.locator('[id="form4_ФормаСоздать"]').click();
|
||
|
|
await page.getByRole('textbox', { name: 'Наименование:' }).click();
|
||
|
|
|
||
|
|
const name = randomString();
|
||
|
|
await page.getByRole('textbox', { name: 'Наименование:' }).pressSequentially(name);
|
||
|
|
await page.getByRole('textbox', { name: 'Наименование полное:' }).click();
|
||
|
|
await page.getByRole('textbox', { name: 'Наименование полное:' }).pressSequentially(randomString());
|
||
|
|
await page.locator('[id="form6_Родитель_DLB"]').click();
|
||
|
|
await page.getByText('Показать все').first().click();
|
||
|
|
await page.locator('div:nth-child(2) > .gridBox.gridBoxTree > .gridBoxImg > div:nth-child(2)').click();
|
||
|
|
await page.getByText('Демо: КонтрагентыБез партнера').click();
|
||
|
|
await page.locator('[id="grid_form7_Список"]').getByText('Без партнера').click();
|
||
|
|
await page.locator('[id="form7_ФормаВыбрать"]').click();
|
||
|
|
await page.locator('a[id $= "ФормаЗаписатьИЗакрыть"]').click();
|
||
|
|
// Содержит подстроку
|
||
|
|
// [id*="ФормаЗаписатьИЗакрыть"]
|
||
|
|
// Заканчивается на
|
||
|
|
// [id$="ФормаЗаписатьИЗакрыть"]
|
||
|
|
// Начинается с
|
||
|
|
// [id^="ФормаЗаписатьИЗакрыть"]
|
||
|
|
// Точное совпадение
|
||
|
|
// [id="form7_ФормаЗаписатьИЗакрыть"]
|
||
|
|
|
||
|
|
await page.locator('[id="grid_form4_Список"]').getByText(name).click({ button: 'right' });
|
||
|
|
await page.locator('#popupItem4').getByText('Пометить на удаление / Снять пометку').click();
|
||
|
|
await page.locator('[id^="form"][id$="_Button0"] a').filter({ hasText: 'Да' }).click();
|
||
|
|
await page.locator('#themesCell_theme_5').getByText('Интегрируемые').click();
|
||
|
|
await page.locator('#cmd_0_6_txt').click();
|
||
|
|
|
||
|
|
// клик по строке в списке
|
||
|
|
page.locator('div.gridLine').last().dblclick();
|
||
|
|
|
||
|
|
await page.locator('a[id^="form"][id$="_ФормаПровестиИЗакрыть"]').click();
|
||
|
|
await page.locator('a[id^="form"][id$="_ФормаСоздать"]').last().click();
|
||
|
|
await page.locator('[id^="form"][id$="_Организация_DLB"]').click();
|
||
|
|
await page.getByText('Показать все').first().click();
|
||
|
|
await page.locator('[id^="grid_form"][id$="_Список"]').last().getByText('Перспектива ЗАО').dblclick();
|
||
|
|
await page.getByRole('textbox', { name: 'Сумма документа: Выбрать (F4)' }).click();
|
||
|
|
await page.getByRole('textbox', { name: 'Сумма документа: Выбрать (F4)' }).pressSequentially("1");
|
||
|
|
await page.locator('[id^="form"][id$="_Партнер_DLB"]').click();
|
||
|
|
await page.getByText('Показать все').first().click();
|
||
|
|
await page.locator('[id^="grid_form"][id$="_Список"]').last().getByText('ООО "Альфа"').dblclick();
|
||
|
|
|
||
|
|
const elems = await page.locator('[id$="_ФормаПровестиИЗакрыть"]').elementHandles();
|
||
|
|
for (const btn of elems) {
|
||
|
|
const id = await btn.evaluate(el => el.id);
|
||
|
|
if (/^form\d+_ФормаПровестиИЗакрыть$/.test(id)) {
|
||
|
|
await btn.click();
|
||
|
|
break; // кликнули первый подходящий
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
function randomString() {
|
||
|
|
return Math.random().toString(36).substring(2, 10);
|
||
|
|
}
|