Spec-Zone.ru › Playwright

Запрос

Всякий раз, когда страница отправляет запрос к сетевому ресурсу, 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();

Возвращает

  • Promise<Object<string, string>>

existingResponse​

Возвращает объект Response, если ответ уже получен, иначе — null.

В отличие от request.response(), этот метод не ожидает получения ответа. Он немедленно возвращает объект ответа, если ответ уже получен, или null, если ответ ещё не получен.

Использование

request.existingResponse();

Возвращает

  • null | Response

failure​

Добавлено до версии v1.9

Метод возвращает null, если запрос не завершился ошибкой, о которой сообщает событие requestfailed.

Использование

Пример регистрации всех запросов, завершившихся ошибкой:

page.on('requestfailed', request => {
  console.log(request.url() + ' ' + request.failure().errorText);
});

Возвращает

  • null | Object
    • errorText string

      Понятное человеку сообщение об ошибке, например 'net::ERR_FAILED'.

frame​

Добавлено до версии v1.9

Возвращает Frame, инициировавший этот запрос.

Использование

const frameUrl = request.frame().url();

Возвращает

  • Frame

Подробности

Обратите внимание, что в некоторых случаях фрейм недоступен, и этот метод вызовет исключение.

  • Если запрос создан 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);

Аргументы

  • name string

    Имя заголовка.

Возвращает

  • Promise<null | string>

headers​

Добавлено до версии v1.9

Объект с HTTP-заголовками запроса. Имена заголовков преобразованы в нижний регистр. Обратите внимание, что этот метод не возвращает заголовки, связанные с безопасностью, в том числе заголовки, связанные с cookie. Чтобы получить полный список заголовков, включая информацию cookie, используйте request.allHeaders().

Использование

request.headers();

Возвращает

  • Object<string, string>

headersArray​

Массив со всеми HTTP-заголовками этого запроса. В отличие от request.allHeaders(), имена заголовков НЕ преобразуются в нижний регистр. Заголовки с несколькими значениями, например Set-Cookie, встречаются в массиве несколько раз.

Использование

await request.headersArray();

Возвращает

  • Promise<Array<Object>>
    • name string

      Имя заголовка.

    • value string

      Значение заголовка.

isNavigationRequest​

Добавлено до версии v1.9

Определяет, управляет ли этот запрос навигацией фрейма.

Некоторые запросы навигации отправляются до создания соответствующего фрейма, поэтому для них недоступен request.frame().

Использование

request.isNavigationRequest();

Возвращает

  • boolean

method​

Добавлено до версии v1.9

Метод запроса (GET, POST и т. д.).

Использование

request.method();

Возвращает

  • string

postData​

Добавлено до версии v1.9

Тело POST-запроса, если оно есть.

Использование

request.postData();

Возвращает

  • null | string

postDataBuffer​

Добавлено до версии v1.9

Тело POST-запроса в бинарном формате, если оно есть.

Использование

request.postDataBuffer();

Возвращает

  • null | Buffer

postDataJSON​

Добавлено до версии v1.9

Возвращает разобранное тело запроса для form-urlencoded, а при необходимости — JSON в качестве запасного варианта.

Если ответ имеет тип application/x-www-form-urlencoded, возвращается объект «ключ/значение» с этими значениями. В противном случае тело разбирается как JSON.

Использование

request.postDataJSON();

Возвращает

  • null | Serializable

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

Возвращает

  • null | Request

redirectedTo​

Добавлено до версии v1.9

Новый запрос, отправленный браузером в ответ на перенаправление сервера.

Использование

Этот метод противоположен методу request.redirectedFrom():

console.log(request.redirectedFrom().redirectedTo() === request); // true

Возвращает

  • null | Request

resourceType​

Добавлено до версии v1.9

Содержит тип ресурса запроса, определённый движком отображения. Типом ресурса может быть одно из следующих значений: document, stylesheet, image, media, font, script, texttrack, xhr, fetch, eventsource, websocket, manifest, other.

Использование

request.resourceType();

Возвращает

  • string

response​

Добавлено до версии v1.9

Возвращает соответствующий объект Response или null, если ответ не был получен из-за ошибки.

Использование

await request.response();

Возвращает

  • Promise<null | Response>

serviceWorker​

Service Worker, выполняющий запрос.

Использование

request.serviceWorker();

Возвращает

  • null | Worker

Подробности

Этот метод доступен только в Chromium. Его безопасно вызывать и в других браузерах, но он всегда будет возвращать null.

У запросов, созданных Service Worker, недоступен request.frame().

sizes​

Возвращает сведения о размере ресурса для указанного запроса.

Использование

await request.sizes();

Возвращает

  • Promise<Object>
    • requestBodySize number

      Размер тела запроса (данных POST) в байтах. Если тела нет, значение равно 0.

    • requestHeadersSize number

      Общее количество байтов от начала сообщения HTTP-запроса до двойной последовательности CRLF перед телом включительно.

    • responseBodySize number

      Размер полученного тела ответа (в закодированном виде) в байтах.

    • responseHeadersSize number

      Общее количество байтов от начала сообщения 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
    • startTime number

      Время начала запроса в миллисекундах, прошедших с 1 января 1970 г. 00:00:00 UTC.

    • domainLookupStart number

      Время непосредственно перед началом поиска клиентом доменного имени ресурса. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

    • domainLookupEnd number

      Время непосредственно после завершения поиска клиентом доменного имени ресурса. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

    • connectStart number

      Время непосредственно перед началом установки клиентом соединения с сервером для получения ресурса. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

    • secureConnectionStart number

      Время непосредственно перед началом клиентом процедуры рукопожатия для защиты текущего соединения. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

    • connectEnd number

      Время непосредственно после установки клиентом соединения с сервером для получения ресурса. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

    • requestStart number

      Время непосредственно перед началом запроса ресурса клиентом с сервера, из кэша или из локального источника. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

    • responseStart number

      Время непосредственно после получения клиентом первого байта ответа с сервера, из кэша или из локального источника. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

    • responseEnd number

      Время непосредственно после получения клиентом последнего байта ресурса или непосредственно перед закрытием транспортного соединения — в зависимости от того, что произойдёт раньше. Значение указано в миллисекундах относительно startTime; если оно недоступно, возвращается -1.

url​

Добавлено до версии v1.9

URL запроса.

Использование

request.url();

Возвращает

  • string

© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-request

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API