Основы работы с DevTools

Узнайте, как открывать и настраивать DevTools для эффективной работы

DevTools предоставляет мощные инструменты для разработки и отладки веб-приложений.

DevTools (Developer Tools) – это набор инструментов, встроенных в браузеры, таких как Google Chrome, Firefox, Edge, для отладки, анализа и оптимизации веб-страниц и приложений. Вот основные шаги и примеры, как использовать и настраивать DevTools.

Как открыть DevTools

Используйте сочетание клавиш F12 или Ctrl + Shift + I (на Windows) и Cmd + Opt + I (на macOS).

Вы можете перетаскивать панели, изменять их размер и даже выбирать между светлой и темной темой для комфортной работы.

Настройка DevTools для эффективной работы

Работа с Elements

Изучим структуру DOM и научимся изменять HTML и CSS в реальном времени

Консоль и логирование

Научитесь использовать консоль для отладки и логирования информации

Анализ сетевых запросов

Изучим вкладку Network и научимся анализировать сетевые запросы

Оптимизация производительности

Научитесь использовать вкладку Performance для анализа и оптимизации производительности вашего приложения

Основные вкладки DevTools

01.

Elements

Позволяет просматривать и изменять HTML и CSS.

02.

Console

Место для выполнения JavaScript кода и логирования.

03.

Network

Отслеживание сетевых запросов.

04.

Sources

Просмотр и отладка исходного кода JavaScript.

05.

Performance

Анализ производительности.

06.

Application

Управление хранилищем (cookies, local storage и др.).

07.

Security

Проверка безопасности страницы.

08.

Lighthouse

Автоматический аудит производительности, доступности и SEO.

Работа с Elements

Для демонстрации будем использовать сайт google.com. Рассмотрим, как использовать вкладку Elements в DevTools для просмотра и изменения HTML и CSS на этом сайте.


1. Просмотр структуры DOM:

На вкладке Elements можно видеть дерево DOM, представляющее структуру HTML документа.

  • Задание: Откройте сайт google.com и откройте DevTools (F12 или Ctrl + Shift + I). Перейдите на вкладку Elements. Вы увидите структуру HTML страницы, включая теги <html>, <head>, <body> и их содержимое.

2. Выбор элемента на странице:

Вы можете выбрать любой элемент на странице для детального изучения и редактирования.

  • Задание: На сайте google.com, нажмите на иконку курсора в верхнем левом углу вкладки Elements, а затем щелкните на логотип Google. В DevTools этот элемент будет выделен в дереве DOM.

3. Изменение HTML:

Вы можете изменять HTML элементы прямо в DevTools.

  • Задание: Выделите элемент логотипа Google (тег <img>). Дважды щелкните на атрибут alt и измените текст на “My Google Logo”. Нажмите Enter, и изменение сразу отобразится в исходном коде.

4. Редактирование атрибутов:

Вы можете добавлять, изменять или удалять атрибуты HTML элементов.

  • Задание: На сайте google.com, выберите элемент <img> логотипа. Щелкните правой кнопкой мыши на элементе в DevTools и выберите Edit as HTML. Добавьте атрибут title="Google Logo". Нажмите Enter, и вы увидите, что атрибут добавлен к элементу.

5. Изменение CSS:

Вы можете изменять стили CSS для элементов.

  • Задание: На сайте google.com, выберите элемент <img> логотипа. В правой панели DevTools вы увидите раздел Styles. Добавьте новое свойство, например, filter: grayscale(100%);. Логотип на странице станет черно-белым.

6. Скрытие элементов:

Вы можете скрывать элементы на странице для проверки, как страница выглядит без них.

  • Задание: На сайте google.com, выберите элемент <img> логотипа. В разделе Styles добавьте свойство display: none;. Логотип исчезнет со страницы.

7. Добавление новых элементов:

Вы можете добавлять новые HTML элементы в структуру DOM.

  • Задание: На сайте google.com, щелкните правой кнопкой мыши на элементе <body> и выберите Edit as HTML. Добавьте новый элемент <p>Hello, this is a new paragraph!</p>. Нажмите Enter, и новый параграф появится на странице.

8. Стилизация с помощью CSS классов:

Вы можете добавлять CSS классы к элементам для применения предопределенных стилей.

  • Задание: На сайте google.com, выберите элемент <input> поисковой строки. В разделе Styles, добавьте новый класс, например, class="highlight". Если у вас в стилях определен класс .highlight { border: 2px solid red; }, поисковая строка получит красную рамку.

Работа с Console

Вкладка Console в DevTools предоставляет мощные возможности для отладки и взаимодействия с веб-страницами с помощью JavaScript. 


1. Открытие консоли:

  1. Перейдите на сайт google.com.
  2. Откройте DevTools (нажмите F12 или Ctrl + Shift + I для Windows, Cmd + Opt + I для macOS).
  3. Перейдите на вкладку Console.

2. Основные команды и их использование:

2.1. console.log():

Используется для вывода сообщений и значений переменных в консоль.

Пример:

console.log('Hello, Google!');
 

Выводит строку “Hello, Google!” в консоль.

2.2. console.error():

Используется для вывода сообщений об ошибках.

Пример:

console.error('This is an error message.');
 

Выводит сообщение об ошибке в консоль.

2.3. console.warn():

Используется для вывода предупреждающих сообщений.

Пример:

console.warn('This is a warning message.');
 

Выводит предупреждающее сообщение в консоль.

2.4. console.table():

Используется для отображения массивов и объектов в виде таблиц.

Пример:

let users = [
{name: 'John', age: 30},
{name: 'Jane', age: 25},
{name: 'Doe', age: 40}
];
console.table(users);
 

Отображает массив объектов в виде таблицы.

2.5. console.dir():

Используется для отображения интерактивного списка свойств JavaScript объекта.

Пример:

let element = document.querySelector('body');
console.dir(element);
 

Отображает DOM-элемент <body> в виде интерактивного списка его свойств.


3. Работа с переменными и элементами страницы:

3.1. Получение элементов:

Вы можете использовать JavaScript для получения элементов на странице и работы с ними.

Пример:

let searchButton = document.querySelector('input[name="btnK"]');
console.log(searchButton);
 

Выводит в консоль элемент кнопки поиска на странице Google.

3.2. Изменение текста элемента:

Вы можете изменять текст элементов прямо из консоли.

Пример:

let logo = document.querySelector('#hplogo');
logo.alt = 'New Alt Text';
console.log(logo.alt);
 

Изменяет текст атрибута alt для логотипа Google и выводит новый текст в консоль.


4. Выполнение функций:

Вы можете выполнять любые функции и отлаживать их прямо из консоли.

Пример:

function greet(name) {
return 'Hello, ' + name + '!';
}

console.log(greet(‘Google’));

Выполняет функцию greet с аргументом ‘Google’ и выводит результат в консоль.


5. Использование выражений:

Консоль позволяет вам выполнять любые JavaScript выражения.

Пример:

let x = 10;
let y = 20;
let sum = x + y;
console.log(sum);
 

Вычисляет сумму переменных x и y и выводит результат в консоль.


6. Работа с событиями:

Вы можете добавлять и отлаживать события прямо из консоли.

Пример:

document.querySelector('input[name="btnK"]').addEventListener('click', function() {
console.log('Search button clicked!');
});
 

Добавляет обработчик события для кнопки поиска, который выводит сообщение в консоль при нажатии.

Работа с Network

Вкладка Network в DevTools позволяет отслеживать все сетевые запросы, сделанные вашим веб-приложением. Это включает в себя запросы на загрузку HTML, CSS, JavaScript, изображений и других ресурсов.

Открытие и базовая настройка вкладки Network

  1. Открытие вкладки Network:

    • Откройте сайт, например, google.com.
    • Откройте DevTools (F12 или Ctrl + Shift + I / Cmd + Opt + I).
    • Перейдите на вкладку Network.
  2. Перезагрузка страницы:

    • Чтобы увидеть все запросы, сделанные при загрузке страницы, нажмите F5 или Ctrl + R / Cmd + R для перезагрузки страницы с открытой вкладкой Network.

Основные элементы вкладки Network

  1. Фильтры:

    • В верхней части вкладки Network вы можете выбрать типы запросов, которые хотите увидеть (All, XHR, JS, CSS, Img, Media, Font, Doc, WS, Other).
    • Пример: Выберите Img, чтобы увидеть только запросы изображений.
  2. Таблица запросов:

    • В таблице отображаются все запросы с такими столбцами, как Name, Status, Type, Initiator, Time, и другие.
    • Пример: Найдите запрос к основному документу HTML, который загружается первым при открытии google.com.
  3. Детали запроса:

    • Нажмите на любой запрос в таблице, чтобы увидеть его детали, включая заголовки, нагрузку, предварительный просмотр и ответ.
    • Пример: Нажмите на запрос к основному HTML-документу и посмотрите заголовки (Headers).

Примеры анализа сетевых запросов на google.com

  1. Анализ запросов к основным ресурсам:

    • После перезагрузки страницы вы увидите запросы к различным ресурсам, таким как HTML, CSS, JS и изображения.
    • Пример: Найдите запрос к https://www.google.com и проанализируйте заголовки. Обратите внимание на заголовки Content-Type, Cache-Control и Expires.
  2. Фильтрация запросов:

    • Используйте фильтры для выделения определенных типов запросов.
    • Пример: Выберите фильтр JS, чтобы увидеть все запросы к JavaScript-файлам. Вы увидите такие файлы, как base.js или main.js.
  3. Анализ времени загрузки:

    • В таблице запросов обратите внимание на столбцы Time и Waterfall.
    • Пример: Посмотрите на диаграмму Waterfall, чтобы понять, сколько времени занял каждый запрос и как они взаимодействовали друг с другом. Это поможет вам найти узкие места в производительности.
  4. Загрузка изображений:

    • Выберите фильтр Img, чтобы увидеть все запросы к изображениям.
    • Пример: Найдите запрос к логотипу Google и проанализируйте его детали. Обратите внимание на размер файла и время загрузки.
  5. Использование вкладки Timing:

    • Внутри деталей запроса перейдите на вкладку Timing, чтобы увидеть разбивку времени загрузки.
    • Пример: Найдите запрос к https://www.google.com и перейдите на вкладку Timing. Вы увидите такие этапы, как DNS Lookup, Initial Connection, SSL, Request Sent, Waiting (TTFB), и Content Download. Это поможет вам понять, где возникают задержки.
  6. Анализ POST-запросов:

    • Если на странице выполняются POST-запросы (например, при отправке формы), вы можете проанализировать их данные.
    • Пример: При выполнении поиска на Google, в таблице запросов появится POST-запрос. Нажмите на него и перейдите на вкладку Headers, чтобы увидеть отправленные данные.

Примеры практического использования

  1. Поиск и устранение проблем с загрузкой ресурсов:

    • Пример: Если ваш сайт загружается медленно, используйте вкладку Network, чтобы найти ресурсы, которые занимают много времени на загрузку. Например, вы можете обнаружить, что одно из изображений слишком большое и требует оптимизации.
  2. Отладка проблем с CORS:

    • Пример: Если ваш JavaScript код выполняет запросы к внешним API и сталкивается с проблемами CORS (Cross-Origin Resource Sharing), вкладка Network поможет вам увидеть ответы сервера и понять, какие заголовки отсутствуют или неправильно настроены.
  3. Проверка кеширования:

    • Пример: Убедитесь, что ваши ресурсы правильно кешируются. Найдите запрос к вашему CSS файлу и посмотрите на заголовки Cache-Control и Expires. Это поможет вам убедиться, что браузер правильно кеширует ваш контент для ускорения последующих загрузок.

Работа с Source

Вкладка Sources в DevTools позволяет вам просматривать, редактировать и отлаживать JavaScript-код на вашей веб-странице. Используя Google.com в качестве примера, мы рассмотрим основные функции вкладки Sources.


1. Открытие вкладки Sources:

Чтобы открыть вкладку Sources, выполните следующие шаги:

  • Откройте Google.com.
  • Откройте DevTools, нажав F12 или Ctrl + Shift + I (на Windows) или Cmd + Opt + I (на macOS).
  • Перейдите на вкладку Sources.

Пример: На сайте Google.com откройте DevTools и перейдите на вкладку Sources.


2. Исследование файлов:

На вкладке Sources вы можете видеть дерево файлов, загруженных на страницу. Оно обычно делится на три панели:

  • File Navigator: Слева находится навигатор файлов, где вы можете выбрать файл для просмотра и редактирования.
  • Editor Pane: Центральная часть, где отображается содержимое выбранного файла.
  • Call Stack, Breakpoints и Scope: Справа находятся панели для отладки.

Пример: В навигаторе файлов выберите файл main.js или аналогичный (в зависимости от структуры сайта Google.com), чтобы посмотреть его содержимое.


3. Установка точек останова (Breakpoints):

Точки останова позволяют вам остановить выполнение кода в определенном месте и исследовать текущее состояние переменных и вызовов функций.

  • Добавление точки останова: Нажмите на номер строки в редакторе, чтобы установить точку останова.
  • Просмотр точек останова: Все установленные точки останова будут отображены на панели справа.

Пример: В выбранном файле main.js найдите интересующую вас функцию и установите точку останова на первой строке этой функции.


4. Шаговая отладка (Stepping through code):

После установки точки останова вы можете пошагово выполнять код, используя следующие инструменты:

  • Step Over (F10): Выполняет текущую строку и переходит к следующей.
  • Step Into (F11): Входит в вызванную функцию.
  • Step Out (Shift + F11): Выходит из текущей функции.
  • Resume Script Execution (F8): Продолжает выполнение кода до следующей точки останова.

Пример: Установите точку останова в функции обработки клика и нажмите кнопку поиска на Google.com, чтобы остановить выполнение кода. Используйте Step Over, Step Into и Step Out для исследования выполнения кода.


5. Инспектирование переменных и контекста (Inspect variables and context):

Когда выполнение кода останавливается на точке останова, вы можете:

  • Изучать переменные: Панель Scope отображает текущие значения переменных.
  • Изучать вызовы функций: Панель Call Stack показывает последовательность вызовов функций, которые привели к текущей точке.

Пример: Установите точку останова в функции обработки ввода в поисковую строку Google.com. Когда выполнение кода остановится, изучите значения переменных на панели Scope.


6. Использование Watch Expressions:

Watch Expressions позволяют вам следить за изменением значений переменных или выражений.

  • Добавление выражения: Нажмите на + на панели Watch, чтобы добавить переменную или выражение.
  • Просмотр изменений: Значения выражений будут обновляться при шаговой отладке.

Пример: Добавьте выражение document.getElementById('searchbox').value в Watch Expressions и следите за изменениями, когда пользователь вводит текст в поисковую строку.


7. Использование Snippets:

Snippets – это небольшие фрагменты кода, которые можно сохранять и запускать по необходимости.

  • Создание сниппета: В навигаторе файлов выберите Snippets, затем нажмите New Snippet.
  • Запуск сниппета: Напишите код и нажмите Ctrl + Enter (Windows) / Cmd + Enter (macOS) для его выполнения.

Пример: Создайте сниппет с кодом alert('Hello, Google!') и запустите его, чтобы увидеть всплывающее сообщение на странице Google.com.


8. Локальные изменения и сохранение:

Вы можете временно изменять код в DevTools и тестировать его.

  • Редактирование кода: Внесите изменения в JavaScript-код прямо в редакторе.
  • Сохранение изменений: Хотя изменения не сохранятся на сервере, вы можете протестировать их локально. Для более длительных изменений используйте Local Overrides.

Пример: Измените текст в функции, которая отвечает за отображение текста на странице, и посмотрите результат.

 

 

Написание и запуск Snippet:

  1. Дайте вашему сниппету имя, например MySnippet.
  2. В центральной панели редактора напишите следующий код:
// Пример сниппета: выводит сообщение в консоль и отображает alert console.log('Hello from Snippet!'); alert('Hello, Google!');
  1. Чтобы запустить сниппет, нажмите Ctrl + Enter (на Windows) или Cmd + Enter (на macOS).

3. Проверка результата:

  1. После запуска сниппета, вы должны увидеть сообщение в консоли DevTools.
  2. Также на странице Google.com должно появиться всплывающее окно с сообщением Hello, Google!.

Пример:

  • Откройте DevTools и перейдите на вкладку Sources.
  • Выберите Snippets и создайте новый сниппет с именем MySnippet.
  • Напишите следующий код в редакторе:
console.log('Hello from Snippet!'); alert('Hello, Google!');
  • Запустите сниппет, нажав Ctrl + Enter или Cmd + Enter.
  • Убедитесь, что в консоли DevTools появилось сообщение Hello from Snippet!, и на странице появилось всплывающее окно с текстом Hello, Google!.

4. Примеры полезных сниппетов:

Вот несколько примеров сниппетов, которые могут быть полезны при работе с веб-страницами:

  • Проверка времени загрузки страницы:
console.log('Page load time is ' + (window.performance.timing.domContentLoadedEventEnd - window.performance.timing.navigationStart) + ' ms');
  • Выделение всех ссылок на странице:
const links = document.querySelectorAll('a'); links.forEach(link => link.style.backgroundColor = 'yellow'); console.log('Highlighted ' + links.length + ' links.');
  • Очистка всех cookie:
document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); }); alert('All cookies have been deleted.');

Работа с Application

Управление хранилищем (cookies, local storage и др.)

Вкладка Application в DevTools предоставляет доступ к различным данным и ресурсам, которые веб-страницы хранят в браузере. Эти данные могут включать файлы cookie, local storage, session storage, кэшированные ресурсы, базы данных IndexedDB, файлы сервиса воркера и многое другое. Рассмотрим более детально работу с Application на примере сайта google.com.


1. Открытие вкладки Application:

  1. Откройте сайт google.com.
  2. Откройте DevTools, нажав F12 или Ctrl + Shift + I (Windows) / Cmd + Opt + I (macOS).
  3. Перейдите на вкладку Application.

2. Cookies:

Cookies используются для хранения данных, которые помогают сайтам сохранять состояние и отслеживать активность пользователей.

  • Просмотр Cookies:

    • В разделе Storage, выберите Cookies и затем https://www.google.com.
    • Вы увидите список всех файлов cookie, установленных на сайте Google.
  • Редактирование Cookies:

    • Выберите любой файл cookie и измените его значение. Например, измените значение файла cookie с именем NID.
  • Удаление Cookies:

    • Выберите файл cookie и нажмите Delete или правой кнопкой мыши выберите Delete.

Пример: Найдите файл cookie с именем 1P_JAR, измените его значение на любое другое и обновите страницу, чтобы увидеть, как это влияет на сайт.


3. Local Storage и Session Storage:

Local Storage и Session Storage используются для хранения данных в браузере без даты истечения срока действия и с истечением после закрытия вкладки соответственно.

  • Просмотр и изменение данных Local Storage:

    • В разделе Storage, выберите Local Storage и затем https://www.google.com.
    • Вы увидите ключ-значение пары данных, хранящихся в Local Storage.
    • Добавьте новую пару, нажав правой кнопкой мыши и выбрав Add Item. Например, добавьте ключ testKey и значение testValue.
  • Просмотр и изменение данных Session Storage:

    • В разделе Storage, выберите Session Storage и затем https://www.google.com.
    • Процесс аналогичен Local Storage, но данные будут удалены после закрытия вкладки.

Пример: Добавьте новую пару ключ-значение в Local Storage и посмотрите, как эти данные сохраняются и доступны при перезагрузке страницы.


4. IndexedDB:

IndexedDB – это асинхронное API для хранения больших объемов структурированных данных, включая файлы и бинарные данные.

  • Просмотр и взаимодействие с базами данных IndexedDB:

    • В разделе Storage, выберите IndexedDB и затем https://www.google.com.
    • Вы увидите базы данных, созданные сайтом. Например, firebaseLocalStorageDb.
  • Изучение данных в IndexedDB:

    • Разверните базу данных, выберите хранилище и просмотрите содержимое.

Пример: Найдите базу данных IndexedDB, созданную сайтом Google, и просмотрите данные, хранящиеся в ней.


5. Cache Storage:

Cache Storage используется для хранения сетевых запросов и ответов, которые могут быть использованы повторно.

  • Просмотр и управление Cache Storage:

    • В разделе Storage, выберите Cache Storage и затем https://www.google.com.
    • Вы увидите кэши, созданные сайтом. Например, google.com.
  • Очистка Cache Storage:

    • Нажмите правой кнопкой мыши на кэш и выберите Delete.

Пример: Очистите кэш google.com и посмотрите, как это влияет на производительность сайта при перезагрузке.


6. Service Workers:

Service Workers – это скрипты, которые ваш браузер запускает в фоновом режиме, отдельно от веб-страницы, позволяя выполнять задачи, не зависящие от веб-страницы.

  • Просмотр и управление Service Workers:

    • В разделе Application, выберите Service Workers.
    • Вы увидите зарегистрированные сервисные рабочие для сайта Google.
  • Принудительная перезагрузка Service Workers:

    • Нажмите кнопку Update или Unregister, чтобы обновить или удалить сервисного рабочего.

Пример: Найдите сервисных рабочих, зарегистрированных на сайте Google, и принудительно обновите их.

Вы узнали об основах работы в DevTools, которая позволяет эффективно управлять данными вашего веб-приложения.

Однако это лишь часть того, что мы можем вам предложить. На нашем полноценном курсе вы сможете получить углубленные знания и навыки, которые помогут вам стать настоящим мастером DevTools.

Популярные курсы

SELENIUM WEBDRIVER

JAVA QA BASIC AUTOMATION

Преимущества

  • Освоение языка Java Java – это один из самых популярных языков программирования в индустрии программного обеспечения. Изучение Java позволит вам работать с множеством инструментов и технологий в области разработки и автоматизированного тестирования.
  • Умение создавать автоматизированные тесты Навыки автоматизации тестирования чрезвычайно важны для повышения эффективности и точности тестирования программного обеспечения.
  • Освоение jUnit, TestNG, Cucumber jUnit – это один из самых популярных фреймворков для юнит-тестирования в Java. TestNG предоставляет больше возможностей для настройки тестовых сценариев и группирования тестов. Cucumber позволяет писать тесты в виде читаемых сценариев, которые может понимать даже человек, не занятый тестированием.
  • Обучение на реальных проектах
  • Индивидуальный подход
  • Сертификат и признание
Срок обучения -> 2 месяца
Вечернее обучение -> 2 раза в неделю
Формат обучения -> вживую в Skype
Подробнее

JAVA QA ADVANCED AUTOMATION

Преимущества

  • Углубленные знания Java Курс позволяет расширить и углубить ваши знания в языке программирования Java, что является фундаментом для многих автоматизированных тестов и разработки программного обеспечения.
  • Расширение автом. навыков Вы изучите продвинутые техники автоматизированного тестирования, которые помогут вам создавать более сложные тестовые сценарии и обеспечить высокое качество тестов.
  • Углубление в архитектуре ПО Курс может предоставить знания по архитектурным паттернам и структурам программного обеспечения, что может быть полезным для создания более расширяемых и поддерживаемых автоматизированных тестовых наборов.
  • Индивидуальный подход
  • Повышение карьерных возможностей Знание продвинутых техник автоматизации тестирования может повысить вашу конкурентоспособность на рынке труда и привести к улучшению вашей заработной платы.
  • Сертификат и признание
Срок обучения: от 1 месяца
Вечернее обучение -> 2 раза в неделю
Формат обучения -> вживую в Skype
Подробнее
CYPRESS (NODE.JS)

JAVASCRIPT QA BASIC AUTOMATION

Преимущества

  • Использование JavaScript и Cypress JavaScript – один из самых популярных языков программирования веб-разработчиков, а Cypress – мощный фреймворк для автоматизированного тестирования веб-приложений.
  • Сосредоточенность на веб-автоматизации Курс специализируется на автоматизации тестирования веб-приложений, что является важным навыком для качества инженера QA.
  • Практические задачи и проекты Важным преимуществом может быть возможность практического применения знаний посредством выполнения задач и разработки автоматизированных тестовых сценариев для реальных веб-приложений.
  • Индивидуальный подход
  • Работа с GIT
  • Сертификат и признание
Срок обучения -> 2 месяца
Вечернее обучение -> 2 раза в неделю
Формат обучения -> вживую в Skype
Подробнее

Поддержка и вопросы

Если вам требуется какая-либо поддержка или у вас возникли дополнительные вопросы, не стесняйтесь связаться с нами – мы готовы быстро оказать вам помощь.

Через чат-бот

Мы также присутствуем в социальных сетях! Подписывайтесь на нас и получайте последние новости, акции, скидки, бесплатные тренинги и участие в марафонах.
Будем рады видеть вас в нашем сообществе!

Курсы

Публичная оферта. Авторское право © 2024 Школа подготовки тестировщиков