mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-29 08:01:02 +03:00
На боевой форме вскрылись случаи, которые прежнее правило не покрывало. Замеры показали, что любая эвристика «по первому сиблингу за заголовком» нежизнеспособна: - служебная обёртка .logicGroupContainer пишется двумя способами (у таблицы <дочерний>#group_div, у вложенной группы <дочерний>_div) — знали только первый; - display самой обёртки плавает: block до первого тогла, none после; - первые узлы группы могут быть скрыты своей логикой, а видимое содержимое идёт дальше по цепочке — раскрытая группа читалась как свёрнутая, и постусловие роняло успешный клик. Теперь состояние берётся из контрола сворачивания: у варианта «картинка» — кадр gx спрайта hideshow у каретки (полярность обратна дереву в dom/grid.mjs), у варианта «гиперссылка» каретки нет, там принадлежность по отступу — дети группы смещены глубже её заголовка, свободный сосед стоит на уровне заголовка. База отсчёта — левый край блока заголовка (каретка сдвигает текст вправо), обход ограничен: у последней свёрнутой группы границы за ней нет, и первый видимый узел нашёлся через 107 сиблингов в чужой ветке формы. Клик по заголовку группы теперь сперва скроллит цель в вид: цель кликается по координатам, и ниже вьюпорта клик молча не доходил. Ответ на клик отдаёт clicked.group (техническое имя) и clicked.title (текущий заголовок): заголовок ключом быть не может — он повторяется между блоками формы и меняется при раскрытии (CollapsedRepresentationTitle), после чего клик по прежнему тексту не находит элемент. При смене заголовка hint говорит, чем кликать дальше. Фикстура: вложенная группа первым ребёнком, «скрыт первый узел» в двух вариантах контрола, группа с меняющимся заголовком в конце формы (уезжает за вьюпорт). Каждый кейс проверен на красноту без своей правки. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
98 lines
2.5 KiB
JavaScript
98 lines
2.5 KiB
JavaScript
// web-test dom v1.20 — 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,
|
|
scrollGroupIntoViewScript,
|
|
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';
|