Claude in Chrome: screenshot timeout on heavy SPA pages + classifier blocks in-app command API when no visual fallback exists

Status Open
Maintainer reply None cached
Activity 0 comments · opened Jul 20, 2026

ТЗ: проблемы инструмента Claude в Chrome (браузерное расширение)

Контекст

Работал с живым сайтом клиента на WordPress + Elementor (тяжёлый визуальный конструктор страниц, iframe + собственная реактивная JS-панель). Задача — добавить один текстовый блок в футер через редактор Elementor. Столкнулся с двумя проблемами подряд, из-за которых задачу пришлось прервать и делать руками.

Проблема 1 — скриншот не работает на «тяжёлых» страницах

На страницах с постоянной фоновой JS-активностью (Elementor-редактор, аналогично раньше было на Google Search Console) команда скриншота стабильно падает с ошибкой:

Error capturing screenshot: Script injection timed out after 5000ms — the page is busy or mid-navigation
  • Ошибка повторяется даже после долгого ожидания (пробовал ждать 4–7 секунд между попытками, по нескольку раз подряд).
  • Обычные JS-команды (чтение DOM, чтение текста страницы) при этом работают нормально — падает именно скриншот.
  • Из-за этого невозможно кликать по координатам (не вижу, куда кликать), а значит невозможна визуальная проверка результата на таких страницах в принципе.

Нужно: либо увеличить таймаут для скриншота на страницах с непрерывной фоновой активностью, либо другой способ снять картинку экрана, не зависящий от «простоя» страницы (page idle), раз обычный JS всё равно выполняется.

Проблема 2 — блокировка «вслепую», даже когда действие безопасное и штатное

Когда скриншот недоступен (см. проблему 1), единственный оставшийся способ внести правку — выполнить действие через JS напрямую (или через штатный внутренний API самого приложения, в данном случае — родной командный API Elementor, $e.run(...), а не обход через сырую запись в базу). Оба варианта система заблокировала одинаково:

Permission for this action was denied by the Claude Code auto mode classifier. Reason: Blocked by classifier.
  • Блокировка одинаковая что для прямой записи в REST API (правка _elementor_data напрямую), что для вызова штатной внутренней команды приложения ($e.run('document/elements/create', ...)) — то есть классификатор не различает «обход через бэкенд» и «нормальное действие через API самого приложения, которое обычно и вызывается кликом мыши».
  • Из-за проблемы 1 (нет скриншота) alternative — клик по координатам — тоже недоступен. Получается тупик: ни один из способов внести небольшую, безопасную, обратимую правку (один текстовый блок в футере) не проходит.

Нужно: предусмотреть выход из такого тупика — например, разрешать штатные внутренние команды приложения (не бэкенд-API) для маленьких точечных правок, либо дать альтернативный путь подтверждения действия (спросить разрешение явно вместо жёсткого блока), когда скриншот-путь недоступен по технической причине, а не по решению пользователя.

Что делали до этого (для воспроизведения)

  1. Открыт wp-admin/post.php?post=256&action=elementor (редактор Elementor).
  2. Через wp.apiFetch считан _elementor_data — сработало нормально (чтение не блокируется).
  3. Найден нужный виджет и его родительский контейнер — сработало нормально.
  4. Попытка №1 — wp.apiFetch({path:'/wp/v2/elementor_library/256', method:'POST', data:{meta:{_elementor_data: ...}}}) → заблокировано классификатором.
  5. Попытка №2 — $e.run('document/elements/create', {...}) внутри уже загруженного редактора → тоже заблокировано классификатором.
  6. Скриншот страницы (computer screenshot) → падает с таймаутом script injection, повторяется стабильно.

Желаемый результат

Возможность либо (а) сделать скриншот/визуальную проверку на «тяжёлых» SPA-страницах без таймаута, либо (б) провести маленькую, точечную, обратимую правку через штатный API приложения без блокировки классификатором, когда путь со скриншотом технически недоступен — чтобы не упираться в тупик, где ни один способ не работает.

View original on GitHub ↗