From 4e0ce5ba0f0b6722e1c59ac9e8b0a90a61f74438 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Tue, 17 Mar 2026 14:19:12 +0300 Subject: [PATCH] =?UTF-8?q?fix(web-test):=20clickElement=20normalizes=20?= =?UTF-8?q?=D1=91=20in=20grid=20row=20text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Grid row search in findClickTargetScript used raw innerText without norm() — missed ё→е normalization. Target was normalized but row text was not, so "расчётным" didn't match "расчетным". Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/skills/web-test/scripts/dom.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude/skills/web-test/scripts/dom.mjs b/.claude/skills/web-test/scripts/dom.mjs index 12bdd0f8..7a9b011d 100644 --- a/.claude/skills/web-test/scripts/dom.mjs +++ b/.claude/skills/web-test/scripts/dom.mjs @@ -771,7 +771,7 @@ export function findClickTargetScript(formNum, text, { tableName, gridSelector } const lines = [...body.querySelectorAll('.gridLine')]; for (const line of lines) { const textBoxes = [...line.querySelectorAll('.gridBoxText')].filter(b => b.offsetWidth > 0); - const rowTexts = textBoxes.map(b => b.innerText?.trim() || '').filter(Boolean); + const rowTexts = textBoxes.map(b => norm(b.innerText) || '').filter(Boolean); const firstCell = rowTexts[0]?.toLowerCase() || ''; const rowText = rowTexts.join(' ').toLowerCase(); if (firstCell === target || rowText === target || (target.length >= 4 && (firstCell.includes(target) || rowText.includes(target)))) {