mirror of
https://github.com/LazarenkoA/Ox.git
synced 2025-11-23 21:33:13 +02:00
добавлен пример скрипта БСП
This commit is contained in:
@@ -228,6 +228,8 @@ function randomString() {
|
||||
}
|
||||
```
|
||||
|
||||
другие примеры можно посмотреть в каталоге [example scripts](example%20scripts)
|
||||
|
||||
### Рекомендации при редактировании сценариев
|
||||
|
||||
1. **Используйте `.pressSequentially()` вместо `.fill()`** — для элементов с автодополнением и валидацией
|
||||
|
||||
72
example scripts/bsp.spec.js
Normal file
72
example scripts/bsp.spec.js
Normal file
@@ -0,0 +1,72 @@
|
||||
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);
|
||||
}
|
||||
Reference in New Issue
Block a user