Вы настроили мониторинг ключевых слов, вы буквально видите слово, находящееся в HTML-коде страницы, когда открываете DevTools — и всё же оповещение никогда не срабатывает. Ничего не сломано. Стандартное обнаружение ключевых слов считывает видимый текст страницы: слова, которые человек действительно может прочитать на экране. Если отслеживаемое значение находится в скрытом элементе, атрибуте data- или встроенном скрипте, это реальные данные, но это не видимый текст, поэтому обычное обнаружение проходит мимо них.
Исправление — один флажок. На вкладке Detect Keyword расширения Auto Refresh от Extfy включите Find monitor text in source, и поиск ключевых слов переключится с отображаемого текста на полный исходный HTML-код — включая скрытые элементы, атрибуты и скрипты.
in_stock ✕
Уведомить пользователя
Воспроизводить звук при найденном/ненайденном ключевом слове
Найти текст мониторинга в исходном коде
Современные страницы содержат гораздо больше информации в своей разметке, чем когда-либо показывают на экране. Ключевое слово, которое вас интересует, часто находится в одном из следующих мест:
display:none или visibility:hidden, ожидающее отображения скриптом.data- — значения вроде data-availability="in_stock" или data-status="approved", которые управляют интерфейсом, но никогда не отображаются как текст.<script> и отображает позже с помощью JavaScript.title, alt и aria-label — читаются машинами и программами чтения с экрана, но невидимы для сопоставления текста.Обнаружение видимого текста специально создано для соответствия интуитивному восприятию: оно читает страницу так, как это делает человек, после того как браузер отобразил всё содержимое, и учитывает только слова, которые действительно появляются на экране. Это делает его быстрым и сохраняет результаты чистыми — совпадение означает, что человек тоже мог бы увидеть это слово. Цена такой конструкции — слепая зона. Всё, что существует только в разметке, по определению не является видимым текстом, поэтому обнаружитель даже не проверяет это. Страница может содержать точную строку, которую вы ввели как ключевое слово, и обнаружение честно сообщит «не найдено», потому что в отображаемом виде её действительно нет.
in_stock, а не метку «In stock», которую страница может показать позже.Представьте страницу товара, которая показывает покупателям «Нет в наличии», в то время как разметка уже содержит data-availability="in_stock" — данные обновились, но интерфейс ещё не успел обновиться. Обнаружение видимого текста продолжает находить устаревшую метку «Нет в наличии». При включённой функции Find monitor text in source и ключевом слове in_stock Auto Refresh замечает изменение в тот момент, когда оно появляется в HTML, часто за мгновение до обновления видимой страницы. Этот же приём работает для скрытых флагов ошибок, состояний подтверждения в административных инструментах и любых значений, которые страница отображает с задержкой через JavaScript.
in_stock or status-approved is far safer than stock.Обнаружение видимого текста является правильным вариантом по умолчанию — до тех пор, пока то, что вы отслеживаете, действительно не отображается. Когда ключевое слово находится в скрытом элементе, атрибуте или скрипте, включите Find monitor text in source на вкладке Detect Keyword в Auto Refresh, и Auto Refresh будет читать страницу так же, как DevTools, обнаруживая данные, которые обычное обнаружение незаметно пропускает.