mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-26 14:41:02 +03:00
refactor(web-test): этап B.5.2 — findFieldInputId хелпер (4 копии → 1)
В selectValue было 4 одинаковых блока поиска input-элемента поля
по имени (form{N}_{name} либо form{N}_{name}_i0 для refs):
clear-ветка, composite-type-ветка, F4-fallback, "last resort" F4.
core/helpers.mjs: findFieldInputId(formNum, fieldName) → string|null.
~30 LOC дублей убрано, поведение 1-в-1.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
5b6243bbcc
commit
3fe038277f
@@ -34,3 +34,22 @@ export async function safeClick(selector, { timeout, dismissErrors = false } = {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a form field's input element id by name. Tries `form{N}_{name}` first,
|
||||
* then `form{N}_{name}_i0` (reference fields use the _i0 suffix). Returns the
|
||||
* element id or null. Used in selectValue's clear/composite-type/F4 fallback
|
||||
* branches.
|
||||
*
|
||||
* @param {number} formNum
|
||||
* @param {string} fieldName
|
||||
* @returns {Promise<string|null>}
|
||||
*/
|
||||
export async function findFieldInputId(formNum, fieldName) {
|
||||
return await page.evaluate(`(() => {
|
||||
const p = 'form${formNum}_';
|
||||
const name = ${JSON.stringify(fieldName)};
|
||||
const el = document.querySelector('[id="' + p + name + '"], [id="' + p + name + '_i0"]');
|
||||
return el ? el.id : null;
|
||||
})()`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user