Рубрика «playwright»

Мне стало интересно, насколько российские сайты в 2026 году ещё зависят от зарубежных сервисов. Не в смысле «пользуется ли компания Zoom», а буквально: что сломается у сайта, если завтра иностранный провайдер отключит российских клиентов. Вручную такое проверять долго, поэтому я написал для этого открытую утилиту и прогнал через неё 50 сайтов: банки, магазины, операторов связи, авиакомпании, доставку, онлайн‑школы и несколько госсайтов. Спойлер: серверы почти все уже перевезли, а вот «мелочи» вроде сертификатов, аналитики и шрифтов остались.

Зачем это вообще проверять

Читать полностью »

Ошибка линтера стоит пяти минут. Ошибка сканера, который проверяет сайты на соответствие 152-ФЗ, выглядит иначе: «ваш сайт нарушает закон». Если сайт при этом в порядке, а отчёт уже ушёл дальше, расплачивается чужая репутация.

Я пишу такой сканер. Его отчёт читает не только разработчик: он уходит веб‑студии, а от неё владельцу сайта. То есть за выдуманную находку краснеть будет не код, а люди, которые ему поверили.

Читать полностью »

Когда я начал делать сервис для наблюдения за ценами на маркетплейсах, первая архитектура казалась очевидной: пользователь передаёт ссылку, сервер открывает страницу, извлекает цену и по расписанию повторяет проверку.

На схеме всё выглядело просто. На практике сервер быстро превратился в самое ненадёжное место системы.

Страницы, которые нормально открывались в обычном браузере, с VPS возвращали 403Читать полностью »

У нас было несколько обучающих видео по личному кабинету. После большого редизайна большая часть стала неактуальной: кнопки переехали, разделы переименовали, один экран вообще уехал в другое меню.

Чтобы обновить одно видео, надо открыть OBS, поднять чистый профиль браузера — иначе в кадр лезут закладки и всплывашки. Потом записать дубль, в котором ты ни разу не промахнулся мышкой. Потом порезать в редакторе, наложить подписи. На семь видео уходит день. Через два месяца — опять день.

Предсказуемо, видео перестали обновлять.

Читать полностью »

Задача формулировалась в одно предложение: робот должен сам звонить людям в WhatsApp, проигрывать голосовое приветствие, записывать ответ и присылать оператору расшифровку с вердиктом «да / нет / надо посмотреть руками».

Проблема в том, что официально это невозможно. У WhatsApp нет API для голосовых роботов: Business API умеет шаблонные сообщения, провайдеры на рынке умеют текстовые рассылки, голосовые звонки закрыты наглухо. Готового решения не существует ни за деньги, ни за большие деньги.

Зато существует официальное десктопное приложение, которое звонить умеет. И его можно водить за руку.

Читать полностью »

Под капотом AI Free: три разных способа работы с веб-провайдерами, единый агентный рантайм, память, skills и много кода восстановления после сбоев.


У веб-версий больших языковых моделей есть странное свойство: для человека они доступны в один клик, а для программы между «отправить вопрос» и «получить ответ» внезапно вырастает целая инфраструктура.

Читать полностью »

Пару месяцев назад я попросил агента проверить форму обратной связи после рефакторинга. Через несколько минут получил отчёт: все проверки пройдены, форма работает корректно. Зелёные галочки, уверенный тон.

Я тогда только начинал отдавать тестирование агенту, поэтому работал по схеме «доверяй, но проверяй»: следом прошёл форму руками, с открытой вкладкой Network. Снаружи всё честно: валидация зелёная, кнопка активная, тост «Спасибо!» показывается, сервер отвечает 200. А в payload вместо темы обращения уходит строка [object Object]. Агент проверил всё, кроме того, что реально уходит на сервер.

Читать полностью »

«Нам нужно сделать регрессионное, функциональное и интеграционное тестирование» — а ты автоматизатор и уже задумываешься о том, что попал куда‑то не туда. Или же ты новичок, решивший пойти в тестировщики, смотришь вакансии и видишь, что этих видов тестирования чуть ли не сотня. Как же понять, что от тебя требуют и куда идти? Попробуем разобраться.

Важно сразу сказать, что виды тестирования разделяют по категориям — всё равно что разработчиков делят не только по яп, но и по тому, где этот яп применяется. Ведь java backend разработчик и java mobile разработчик это совершенно разные вещи!

Читать полностью »

В общем, базовая история с аудитом страниц: мы каждый месяц отправляли подрядчику несколько страниц на проверку. Отбирали несколько максимально разных. Если находились проблемы на одной, мы также правили и на однотипных. В месяц так проверяли 4–6 страниц. И тут, из очевидных минусов — оплата подрядчика и ожидание.

Учитывая, что по сути нужно проверять однотипные вещи, вроде title, description, H1 и, например, ошибки в консоли, то я подумал, почему бы не попробовать отдать это агенту. Да, в деталях всё не так просто, но общая процедура каждый раз плюс‑минус одинаковая, а значит, можно настроить сценарий. 

Читать полностью »

Коротко. Сервис открывает чужой сайт и считает штраф по КоАП. Внутри двухуровневая проверка по 22 правилам: дешёвые эвристики на cheerio там, где хватает регулярок, и Claude через российский прокси там, где нужно понять смысл текста. На выходе балл от 0 до 100, список нарушений со статьями КоАП и вилкой штрафа. Законы в основе: 152-ФЗ о персональных данных, 242-ФЗ о локализации, закон о рекламе, закон о защите прав потребителей. Ниже стек, архитектура и грабли. Самая обидная грабля в том, что b в JavaScript не образует границу слова перед кириллицей, и детектор молча слепнет на русском тексте.

Зачем я вообще это делал

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js