Вкладка Elements
Вкладка Elements показывает страницу в текущем состоянии: чем каждый элемент на экране является в разметке и как эта разметка ведёт себя при сужении окна.
Что такое DOM
DOM расшифровывается как Document Object Model — объектная модель документа. Это структура страницы, которую браузер строит из HTML и затем может изменять с помощью скриптов. HTML, который изначально вернул сервер, — отдельный артефакт, он виден во вкладке Network в запросе документа. Если значение есть в Elements, но отсутствует в исходном HTML, его подставил скрипт.
Как найти элемент
Иконка со стрелкой в левом верхнем углу DevTools (ctrl shift c / cmd shift c) выбирает элемент на странице и подсвечивает его в разметке. ctrl f / cmd f внутри дерева Elements выполняет поиск по тексту, CSS-селектору или XPath — тем же селекторам, которые используют автотесты, поэтому уникальность локатора проверяют здесь.
CSS: как выглядит элемент
CSS расшифровывается как Cascading Style Sheets, по-русски — каскадные таблицы стилей. Это язык, на котором описывают внешний вид веб-страницы. HTML описывает структуру и смысл страницы, а CSS — её цвет, шрифт, размер, отступы, границы и положение элементов. Обычно правила CSS находятся в файлах стилей, но могут быть записаны прямо у элемента в атрибуте style.
button { background-color: #f28338; padding: 12px; }
Селектор button выбирает все кнопки. background-color и padding — свойства, а значения после двоеточия задают их вид.
Слово «каскадные» означает, что несколько правил могут пытаться задать одно и то же свойство. Браузер выбирает одно итоговое значение: обычно из более конкретного правила или из правила, записанного позже. Чтобы посмотреть CSS, выбери элемент во вкладке Elements.
Панель Styles показывает подходящие правила, файл-источник и правила, которые были переопределены. В Computed видно итоговое значение, которое браузер применяет на самом деле. Перечёркнутое свойство не работает, потому что его переопределило другое правило.
Цвета и шрифты: один цвет можно записать как #f28338, rgb(242, 131, 56) или hsl(...); это форматы записи, а не разные цвета. Нажмите на цветной квадратик в Styles, чтобы посмотреть цвет или переключить его формат. В font-family может быть список запасных шрифтов: браузер берёт первый установленный. Чтобы подтвердить шрифт, которым текст отрисован на самом деле, откройте Computed и найдите внизу раздел Rendered Fonts.
Пять распространённых тегов
HTML описывает не только внешний вид, но и назначение элементов. Начать удобно с пяти часто встречающихся тегов:
<button>Сохранить</button> — выполняет действие: сохраняет, отправляет или открывает что-то. Получает фокус с клавиатуры и работает по Enter и Space.
<a href="/profile">Профиль</a> — ведёт на другую страницу или к месту на текущей странице.
<label for="email">Email</label> — подписывает поле формы и связывается с <input id="email">.
<img src="photo.jpg" alt="Команда на встрече"> — добавляет изображение; alt описывает важное содержимое для скринридера.
<nav>...</nav> — обозначает группу ссылок для навигации, например главное меню.
Стилизованный <div> может выглядеть как кнопка, не будучи кнопкой. Разница видна в разметке и важна для клавиатуры, скринридера и поведения браузера.
Заголовки: h1, h2 и h3
Заголовки показывают структуру документа. <h1> — главная тема страницы, <h2> — раздел этой темы, а <h3> — подраздел внутри <h2>.
<h1>Изучаем DevTools</h1>
<h2>Вкладка Elements</h2>
<h3>Как найти элемент</h3>
На странице используют один <h1> и не пропускают уровни: после <h2> ставят <h3>, только если это подраздел. Заголовок — не способ увеличить текст: размер задаёт CSS, а тег заголовка — структуру.
Что проверять в разметке
- Является ли элемент управления настоящим <button> или это <div>. Фокус с клавиатуры получает только первый: пройдите страницу клавишей Tab и отметьте пропущенные элементы.
- Связано ли каждое поле ввода с <label>. Если связано, клик по подписи ставит фокус в поле; если нет, скринридеру нечего озвучить.
- Ровно один <h1> и последовательный порядок заголовков без пропусков с <h2> на <h5>.
- Есть ли у изображений осмысленный атрибут alt, а у декоративных — пустой.
Проверка разрешений экрана
Адаптивная вёрстка — это вёрстка, которая подстраивается под доступную ширину экрана. Один и тот же сайт должен оставаться удобным на узком телефоне, планшете и широком экране компьютера.
Мобильная вёрстка — вариант такой вёрстки для маленьких экранов: колонки обычно становятся одной колонкой, меняется меню, по элементам легче попадать пальцем, а текст не должен уходить за край.
Это важно, потому что страница может выглядеть правильно на ноутбуке разработчика и быть неудобной на телефоне: кнопка окажется за пределами экрана, форму придётся прокручивать по горизонтали или меню закроет содержимое. Проверка только одной десктопной ширины такие дефекты не находит.
Режим device toolbar (ctrl shift m / cmd shift m) задаёт произвольную ширину окна. Проверка строится вокруг брейкпоинтов — ширин, на которых меняется вёрстка, — а не вокруг названий устройств: примерно 360, 768, 1024 и 1280, а также по несколько пикселей с обеих сторон от каждого перехода. На каждой ширине проверьте, что колонки перестраиваются ожидаемо, текст не выходит за границы, элементы управления видны и у страницы не появляется горизонтальная прокрутка. Поворот экрана и зум браузера на 200% — ещё два случая для проверки.
Как внести локальные правки в элемент
В Elements можно временно изменить то, что видите вы в своём браузере: переписать текст, удалить элемент или поменять CSS-свойство, чтобы проверить гипотезу. Это локальные правки: они не меняют сайт для других людей и не передаются на сервер. После перезагрузки страницы все изменения исчезнут.
Зачем это нужно? Чтобы проверить возможную причину дефекта до оформления бага. Например, заменить короткое название товара на очень длинное и посмотреть, сломается ли карточка; скрыть рекламный блок и проверить, не закрывает ли он кнопку; временно изменить цвет или отступ, чтобы показать разработчику ожидаемый результат.
Как изменить текст: выбери его на странице, правый клик → Inspect, затем дважды кликни по тексту между открывающим и закрывающим тегами в Elements. Введи новое значение и нажми Enter.
Как изменить стиль: выбери элемент, найди панель Styles и поменяй значение, например color или margin. Страница обновится сразу.
Как удалить элемент: выбери его тег в Elements и нажми Delete. Чтобы вернуть элемент, перезагрузи страницу.
На собеседовании
На собеседовании по Elements обычно проверяют, умеете ли вы прочитать разметку и использовать её для проверки интерфейса. Попробуйте ответить сами, прежде чем открыть ответ.
juniorначальный уровень знаний
1. Как быстро найти элемент на странице и в разметке?
Нажать ctrl shift c / cmd shift c и кликнуть по элементу на странице: DevTools выделит его в Elements. Внутри дерева поиск открывается сочетанием ctrl f / cmd f; искать можно текстом, CSS-селектором или XPath.
2. Можно ли исправить текст или CSS во вкладке Elements?
Да, но только локально в своём браузере: можно изменить текст, CSS-свойство или удалить элемент, чтобы проверить гипотезу. Эти изменения не уходят на сервер, не видны другим пользователям и пропадают после перезагрузки страницы.
3. Как проверить адаптивную вёрстку через DevTools?
Открыть device toolbar сочетанием ctrl shift m / cmd shift m и проверить страницу на разных ширинах, особенно возле брейкпоинтов. Нужно убедиться, что элементы не выходят за экран, остаются доступными, колонки перестраиваются ожидаемо и нет горизонтальной прокрутки.
middleболее продвинутый уровень
4. Чем DOM во вкладке Elements отличается от исходного HTML?
Elements показывает текущее DOM-дерево после того, как браузер построил страницу и JavaScript мог её изменить. Исходный HTML — документ, который пришёл с сервера. Если данные есть в DOM, но нет в исходном HTML, их добавил скрипт.
5. Почему кнопка в виде div может быть дефектом?
Стилизованный <div> может выглядеть как кнопка, но не получает стандартную семантику, фокус и управление с клавиатуры. Для действия нужен <button>, либо разработчик должен отдельно реализовать все недостающие свойства.
Вопросы по остальным темам собраны на странице Вопросы на собеседовании QA по DevTools.