mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-20 01:20:59 +03:00
closeForm умел только Escape. На реальном стенде Escape не закрывает ни
модальную форму, ни даже обычный список — форма оставалась открытой, и
resetState считал контекст грязным.
- Каскад закрытия (closeCrossScript в dom/forms.mjs): Escape → крестик
плавающего окна (ps<N>, модалка поверх формы) → крестик страницы формы
(VW_page<N>, работает и при скрытой панели вкладок) → крестик активной
вкладки (класс select, не первый попавшийся .openedClose). Порядок и якоря
замерены живьём. Крестик формы бьёт вкладочный, потому что панель открытых
может быть выключена настройкой.
- nothingToClose: когда Escape не помог и крестика нет нигде — платформа сама
говорит, что поверхность не закрывается, то есть это рабочий стол. Этот сигнал
и питает «чисто» в resetState, без базового снимка и списков-исключений.
- Семантика подтверждения по смыслу вопроса (pickConfirmationLabel): 1С теми же
кнопками «Да/Нет» задаёт разные вопросы. «Сохранить изменения?» → save?Да:Нет
(как было); «Закрыть согласование?» → Да=закрыть (иначе save:false жал «Нет» =
«остаться», и модалка утекала в следующий тест). Решение по вопросительному
предложению; неизвестная формулировка → прежнее поведение.
- Ответственность DOM: поиск крестика вынесен в dom/forms.mjs (генератор скрипта
для page.evaluate), close.mjs его только зовёт. Диагностика приведена к
английскому, как остальной модуль; русским остаётся лишь цитата платформы.
Проверено на свежей базе пилота: модалка «Комментарий и согласование» →
closeForm({save:false}) = closed:true, answered:Да, viaCross:true, formCount 2→1
(критерий пилота); стопка документ→список→стол разбирается насквозь и
останавливается на столе. Полный регресс 25/25, closeForm зовёт каждый тест.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
97 lines
2.4 KiB
JavaScript
97 lines
2.4 KiB
JavaScript
// web-test dom v1.18 — facade re-exporting injectable DOM scripts from dom/
|
|
// Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
|
/**
|
|
* Facade: re-exports DOM selector & semantic mapping script generators.
|
|
* Внутренности живут в dom/*. Публичный набор имён неизменен.
|
|
*
|
|
* All functions return JavaScript strings for page.evaluate().
|
|
* They produce clean semantic structures — no DOM IDs or CSS classes leak out.
|
|
* Only non-default property values are included to minimize response size.
|
|
*/
|
|
|
|
export {
|
|
detectFormScript,
|
|
closeCrossScript,
|
|
readFormScript,
|
|
findClickTargetScript,
|
|
findFieldButtonScript,
|
|
resolveFieldsScript,
|
|
detectNewFormScript,
|
|
findSearchInputScript,
|
|
findNamedButtonScript,
|
|
findCompareTypeRadioScript,
|
|
isFormVisibleScript,
|
|
findPatternInputIdScript,
|
|
isTypeDialogScript,
|
|
isNotInListCloudVisibleScript,
|
|
clickShowAllInNotInListCloudScript,
|
|
findChildFormByButtonScript,
|
|
readTypeDialogVisibleRowsScript,
|
|
} from './dom/forms.mjs';
|
|
|
|
export {
|
|
findFirstGridCellCoordsScript,
|
|
findColumnFirstCellCoordsScript,
|
|
readFieldSelectorInfoScript,
|
|
pickFieldInSelectorDropdownScript,
|
|
readFilterDialogInfoScript,
|
|
findFilterBadgeCloseScript,
|
|
findFirstFilterBadgeCloseScript,
|
|
} from './dom/filter.mjs';
|
|
|
|
export {
|
|
isInputFocusedScript,
|
|
isInputFocusedInGridScript,
|
|
findOpenPopupScript,
|
|
} from './dom/edit-state.mjs';
|
|
|
|
export {
|
|
readEddScript,
|
|
isEddVisibleScript,
|
|
clickEddItemViaDispatchScript,
|
|
clickShowAllInEddScript,
|
|
} from './dom/edd.mjs';
|
|
|
|
export { getFormStateScript } from './dom/form-state.mjs';
|
|
|
|
export {
|
|
resolveGridScript,
|
|
readTableScript,
|
|
countGridRowsScript,
|
|
isTreeGridScript,
|
|
findGridHeadCenterCoordsScript,
|
|
getSelectedOrLastRowIndexScript,
|
|
findGridCellScript,
|
|
findFocusCellScript,
|
|
snapshotGridScript,
|
|
resolveCellTargetScript,
|
|
} from './dom/grid.mjs';
|
|
|
|
export {
|
|
sortFieldKeysByColindexScript,
|
|
findCellCoordsByFieldsScript,
|
|
findNextCellCoordsByKeyScript,
|
|
findCheckboxAtPointScript,
|
|
findRowCommitClickCoordsScript,
|
|
getGridEditCheckScript,
|
|
readActiveGridCellScript,
|
|
getElementCenterCoordsByIdScript,
|
|
} from './dom/grid-edit.mjs';
|
|
|
|
export {
|
|
readSectionsScript,
|
|
readTabsScript,
|
|
switchTabScript,
|
|
readCommandsScript,
|
|
navigateSectionScript,
|
|
openCommandScript,
|
|
} from './dom/nav.mjs';
|
|
|
|
export {
|
|
readSubmenuScript,
|
|
clickPopupItemScript,
|
|
readCloudDDScript,
|
|
} from './dom/submenu.mjs';
|
|
|
|
export { checkErrorsScript } from './dom/errors.mjs';
|