Запрос
Всякий раз, когда страница отправляет запрос к сетевому ресурсу, Page генерирует следующую последовательность событий:
- page.on('request') генерируется, когда страница отправляет запрос.
- page.on('response') генерируется, когда для запроса получены статус и заголовки ответа (если они получены).
- page.on('requestfinished') генерируется, когда тело ответа загружено и запрос завершён.
Если на каком-либо этапе запрос завершается ошибкой, вместо события 'requestfinished' (и, возможно, вместо события 'response') генерируется событие page.on('requestfailed').
примечаниеHTTP-ответы с ошибками, например 404 или 503, с точки зрения HTTP всё равно считаются успешными ответами, поэтому запрос завершается событием
'requestfinished'.
Если запрос получает ответ 'redirect', он успешно завершается событием requestfinished, после чего отправляется новый запрос по URL перенаправления.
Методы
allHeaders
Объект со всеми HTTP-заголовками этого запроса. Имена заголовков преобразованы в нижний регистр.
Использование
await request.allHeaders();
Возвращает
existingResponse
Возвращает объект Response, если ответ уже получен, иначе — null.
В отличие от request.response(), этот метод не ожидает получения ответа. Он немедленно возвращает объект ответа, если ответ уже получен, или null, если ответ ещё не получен.
Использование
request.existingResponse();
Возвращает
failure
Добавлено до версии v1.9Метод возвращает null, если запрос не завершился ошибкой, о которой сообщает событие requestfailed.
Использование
Пример регистрации всех запросов, завершившихся ошибкой:
page.on('requestfailed', request => {
console.log(request.url() + ' ' + request.failure().errorText);
}); Возвращает
frame
Добавлено до версии v1.9Возвращает Frame, инициировавший этот запрос.
Использование
const frameUrl = request.frame().url();
Возвращает
Подробности
Обратите внимание, что в некоторых случаях фрейм недоступен, и этот метод вызовет исключение.
- Если запрос создан Service Worker. Проверить это можно с помощью
request.serviceWorker(). - Если запрос навигации отправлен до создания соответствующего фрейма. Проверить это можно с помощью request.isNavigationRequest().
Пример обработки всех случаев:
if (request.serviceWorker())
console.log(`request ${request.url()} from a service worker`);
else if (request.isNavigationRequest())
console.log(`request ${request.url()} is a navigation request`);
else
console.log(`request ${request.url()} from a frame ${request.frame().url()}`); headerValue
Возвращает значение заголовка с указанным именем. Регистр символов в имени не учитывается.
Использование
await request.headerValue(name);
Аргументы
-
namestringИмя заголовка.
Возвращает
headers
Добавлено до версии v1.9Объект с HTTP-заголовками запроса. Имена заголовков преобразованы в нижний регистр. Обратите внимание, что этот метод не возвращает заголовки, связанные с безопасностью, в том числе заголовки, связанные с cookie. Чтобы получить полный список заголовков, включая информацию cookie, используйте request.allHeaders().
Использование
request.headers();
Возвращает
headersArray
Массив со всеми HTTP-заголовками этого запроса. В отличие от request.allHeaders(), имена заголовков НЕ преобразуются в нижний регистр. Заголовки с несколькими значениями, например Set-Cookie, встречаются в массиве несколько раз.
Использование
await request.headersArray();
Возвращает
isNavigationRequest
Добавлено до версии v1.9Определяет, управляет ли этот запрос навигацией фрейма.
Некоторые запросы навигации отправляются до создания соответствующего фрейма, поэтому для них недоступен request.frame().
Использование
request.isNavigationRequest();
Возвращает
method
Добавлено до версии v1.9Метод запроса (GET, POST и т. д.).
Использование
request.method();
Возвращает
postData
Добавлено до версии v1.9Тело POST-запроса, если оно есть.
Использование
request.postData();
Возвращает
postDataBuffer
Добавлено до версии v1.9Тело POST-запроса в бинарном формате, если оно есть.
Использование
request.postDataBuffer();
Возвращает
postDataJSON
Добавлено до версии v1.9Возвращает разобранное тело запроса для form-urlencoded, а при необходимости — JSON в качестве запасного варианта.
Если ответ имеет тип application/x-www-form-urlencoded, возвращается объект «ключ/значение» с этими значениями. В противном случае тело разбирается как JSON.
Использование
request.postDataJSON();
Возвращает
redirectedFrom
Добавлено до версии v1.9Запрос, который сервер перенаправил на этот, если такой есть.
Когда сервер отвечает перенаправлением, Playwright создаёт новый объект Request. Эти два запроса связаны методами redirectedFrom() и redirectedTo(). Если произошло несколько перенаправлений сервера, всю цепочку перенаправлений можно построить, многократно вызывая redirectedFrom().
Использование
Например, если сайт http://example.com перенаправляет на https://example.com:
const response = await page.goto('http://example.com');
console.log(response.request().redirectedFrom().url()); // 'http://example.com' Если сайт https://google.com не перенаправляет запросы:
const response = await page.goto('https://google.com');
console.log(response.request().redirectedFrom()); // null Возвращает
redirectedTo
Добавлено до версии v1.9Новый запрос, отправленный браузером в ответ на перенаправление сервера.
Использование
Этот метод противоположен методу request.redirectedFrom():
console.log(request.redirectedFrom().redirectedTo() === request); // true
Возвращает
resourceType
Добавлено до версии v1.9Содержит тип ресурса запроса, определённый движком отображения. Типом ресурса может быть одно из следующих значений: document, stylesheet, image, media, font, script, texttrack, xhr, fetch, eventsource, websocket, manifest, other.
Использование
request.resourceType();
Возвращает
response
Добавлено до версии v1.9Возвращает соответствующий объект Response или null, если ответ не был получен из-за ошибки.
Использование
await request.response();
Возвращает
serviceWorker
Service Worker, выполняющий запрос.
Использование
request.serviceWorker();
Возвращает
Подробности
Этот метод доступен только в Chromium. Его безопасно вызывать и в других браузерах, но он всегда будет возвращать null.
У запросов, созданных Service Worker, недоступен request.frame().
sizes
Возвращает сведения о размере ресурса для указанного запроса.
Использование
await request.sizes();
Возвращает
-
Promise<Object>
-
requestBodySizenumberРазмер тела запроса (данных POST) в байтах. Если тела нет, значение равно 0.
-
requestHeadersSizenumberОбщее количество байтов от начала сообщения HTTP-запроса до двойной последовательности CRLF перед телом включительно.
-
responseBodySizenumberРазмер полученного тела ответа (в закодированном виде) в байтах.
-
responseHeadersSizenumberОбщее количество байтов от начала сообщения HTTP-ответа до двойной последовательности CRLF перед телом включительно.
-
timing
Добавлено до версии v1.9Возвращает сведения о времени загрузки ресурса для указанного запроса. Большинство значений времени становятся доступными после получения ответа, responseEnd становится доступно после завершения запроса. Дополнительную информацию см. в API Resource Timing.
Использование
const requestFinishedPromise = page.waitForEvent('requestfinished');
await page.goto('http://example.com');
const request = await requestFinishedPromise;
console.log(request.timing()); Возвращает
-
Object
-
startTimenumberВремя начала запроса в миллисекундах, прошедших с 1 января 1970 г. 00:00:00 UTC.
-
domainLookupStartnumberВремя непосредственно перед началом поиска клиентом доменного имени ресурса. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1. -
domainLookupEndnumberВремя непосредственно после завершения поиска клиентом доменного имени ресурса. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1. -
connectStartnumberВремя непосредственно перед началом установки клиентом соединения с сервером для получения ресурса. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1. -
secureConnectionStartnumberВремя непосредственно перед началом клиентом процедуры рукопожатия для защиты текущего соединения. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1. -
connectEndnumberВремя непосредственно после установки клиентом соединения с сервером для получения ресурса. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1. -
requestStartnumberВремя непосредственно перед началом запроса ресурса клиентом с сервера, из кэша или из локального источника. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1. -
responseStartnumberВремя непосредственно после получения клиентом первого байта ответа с сервера, из кэша или из локального источника. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1. -
responseEndnumberВремя непосредственно после получения клиентом последнего байта ресурса или непосредственно перед закрытием транспортного соединения — в зависимости от того, что произойдёт раньше. Значение указано в миллисекундах относительно
startTime; если оно недоступно, возвращается -1.
-
url
Добавлено до версии v1.9URL запроса.
Использование
request.url();
Возвращает
© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-request