BrowserContext
BrowserContexts provide a way to operate multiple independent browser sessions.
Если страница открывает другую страницу, например, с помощью вызова window.open, всплывающее окно будет принадлежать контексту браузера родительской страницы.
Playwright позволяет создавать изолированные непостоянные (неперсистентные) контексты браузера с помощью метода Browser.newContext(). Такие контексты не сохраняют данные просмотра на диск.
// Создание нового приватного (инкогнито) контекста браузера
BrowserContext context = browser.newContext();
// Создание новой страницы в этом контексте.
Page page = context.newPage();
page.navigate("https://example.com");
// Закрытие контекста, когда он больше не нужен.
context.close();
Методы
addCookies
Добавлено до v1.9Добавляет cookies в данный контекст браузера. Все страницы в этом контексте будут иметь указанные cookies. Cookies можно получить с помощью метода BrowserContext.cookies().
Использование
browserContext.addCookies(Arrays.asList(cookieObject1, cookieObject2));
Аргументы
cookiesList<Cookie>#-
setNameString -
setValueString -
setUrlString (опционально) Необходимо указать либоurl, либоdomainиpath. Необязательный параметр. -
setDomainString (опционально) Чтобы cookie применялась ко всем поддоменам, добавьте точку перед доменом, например: ".example.com". Необходимо указать либоurl, либоdomainиpath. Необязательный параметр. -
setPathString (опционально) Необходимо указать либоurl, либоdomainиpath. Необязательный параметр. -
setExpiresdouble (опционально) Время в формате Unix (в секундах). Необязательный параметр. -
setHttpOnlyboolean (опционально) Необязательный параметр. -
setSecureboolean (опционально) Необязательный параметр. -
setSameSiteenum SameSiteAttribute { STRICT, LAX, NONE }(опционально) Необязательный параметр.
-
Возвращает
addInitScript
Добавлено до v1.9Добавляет скрипт, который будет выполняться в одном из следующих случаев:
- Когда создаётся страница в контексте браузера или происходит навигация.
- Когда вложенный фрейм добавляется или в нём происходит навигация на любой странице в контексте браузера. В этом случае скрипт выполняется в контексте нового фрейма.
Скрипт выполняется после создания документа, но до запуска любых скриптов самой страницы. Это полезно для настройки окружения JavaScript, например, для подмены Math.random.
Использование
Пример переопределения Math.random до загрузки страницы:
// preload.js
Math.random = () => 42;
// В вашем скрипте playwright, если файл preload.js находится в той же директории.
browserContext.addInitScript(Paths.get("preload.js"));
Порядок выполнения нескольких скриптов, установленных через BrowserContext.addInitScript() и Page.addInitScript(), не определён.
Аргументы
scriptString | Path# Скрипт, который будет выполняться на всех страницах в данном контексте браузера.
Возвращает
backgroundPages
Добавлено в: v1.11Фоновые страницы поддерживаются только в браузерах на базе Chromium.
Все существующие фоновые страницы в данном контексте.
Использование
BrowserContext.backgroundPages();
Возвращает
browser
Добавлено до v1.9Возвращает экземпляр браузера, к которому относится данный контекст. Если контекст был создан как постоянный (persistent), возвращается null.
Использование
BrowserContext.browser();
Возвращает
clearCookies
Добавлено до v1.9Удаляет cookies из контекста. Поддерживает необязательный фильтр.
Использование
context.clearCookies();
context.clearCookies(new BrowserContext.ClearCookiesOptions().setName("session-id"));
context.clearCookies(new BrowserContext.ClearCookiesOptions().setDomain("my-origin.com"));
context.clearCookies(new BrowserContext.ClearCookiesOptions().setPath("/api/v1"));
context.clearCookies(new BrowserContext.ClearCookiesOptions()
.setName("session-id")
.setDomain("my-origin.com"));
Аргументы
optionsBrowserContext.ClearCookiesOptions(опционально)setDomainString | Pattern (опционально) Добавлено в: v1.43# Удаляет только cookies с указанным доменом.setNameString | Pattern (опционально) Добавлено в: v1.43# Удаляет только cookies с указанным именем.setPathString | Pattern (опционально) Добавлено в: v1.43# Удаляет только cookies с указанным путём.
Возвращает
clearPermissions
Добавлено до v1.9Сбрасывает все переопределения разрешений для данного контекста браузера.
Использование
BrowserContext context = browser.newContext();
context.grantPermissions(Arrays.asList("clipboard-read"));
// выполнение действий...
context.clearPermissions();
Возвращает
close
Добавлено до v1.9Закрывает данный контекст браузера. Все страницы, относящиеся к этому контексту, будут закрыты.
Контекст браузера по умолчанию не может быть закрыт.
Использование
BrowserContext.close();
BrowserContext.close(options);
Аргументы
optionsBrowserContext.CloseOptions(опционально)
Возвращает
cookies
Добавлено до v1.9Если не указаны URL-адреса, метод возвращает все cookies. Если указаны URL, возвращаются только cookies, относящиеся к этим URL.
Использование
BrowserContext.cookies();
BrowserContext.cookies(urls);
Аргументы
Возвращает
exposeBinding
Добавлено до v1.9Метод добавляет функцию с именем name в объект window каждого фрейма на каждой странице в контексте. При вызове эта функция выполняет callback и возвращает Promise, который резолвится в результат выполнения callback. Если [callback] возвращает Promise, он будет ожидаться.
Первый аргумент функции [callback] содержит информацию о вызывающем контексте: { browserContext: BrowserContext, page: Page, frame: Frame }.
Смотрите также Page.exposeBinding() для версии, ограниченной страницей.
Использование
Пример: передача URL страницы во все фреймы на всех страницах контекста:
import com.microsoft.playwright.*;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext context = browser.newContext();
context.exposeBinding("pageURL", (source, args) -> source.page().url());
Page page = context.newPage();
page.setContent("<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.pageURL();\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>");
page.getByRole(AriaRole.BUTTON).click();
}
}
}
Аргументы
nameString# Имя функции в объекте window.callbackBindingCallback# Callback-функция, которая будет вызываться в контексте Playwright.optionsBrowserContext.ExposeBindingOptions(опционально)
Возвращает
exposeFunction
Добавлено до v1.9Метод добавляет функцию с именем name в объект window каждого фрейма на каждой странице в контексте. При вызове эта функция выполняет callback и возвращает Promise, который резолвится в результат выполнения callback.
Если callback возвращает Promise, он будет ожидаем.
Смотрите также Page.exposeFunction() для версии, ограниченной страницей.
Использование
Пример добавления функции sha256 во все страницы в контексте:
import com.microsoft.playwright.*;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext context = browser.newContext();
context.exposeFunction("sha256", args -> {
String text = (String) args[0];
MessageDigest crypto;
try {
crypto = MessageDigest.getInstance("SHA-256");
} catch (NoSuchAlgorithmException e) {
return null;
}
byte[] token = crypto.digest(text.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(token);
});
Page page = context.newPage();
page.setContent("<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.sha256('PLAYWRIGHT');\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>\n");
page.getByRole(AriaRole.BUTTON).click();
}
}
}
Аргументы
nameString# Имя функции в объекте window.callbackFunctionCallback# Callback-функция, которая будет вызываться в контексте Playwright.
Возвращает
grantPermissions
Добавлено до v1.9Выдаёт указанные разрешения контексту браузера. Если указано origin, разрешения применяются только к этому источнику.
Использование
BrowserContext.grantPermissions(permissions);
BrowserContext.grantPermissions(permissions, options);
Аргументы
-
permissionsList<String># Список разрешений, которые нужно выдать.осторожноПоддерживаемые разрешения различаются в зависимости от браузера и даже между разными версиями одного и того же браузера. Любое разрешение может перестать работать после обновления.
Некоторые из разрешений, которые могут поддерживаться:
'accelerometer''ambient-light-sensor''background-sync''camera''clipboard-read''clipboard-write''geolocation''gyroscope''magnetometer''microphone''midi-sysex'(system-exclusive midi)'midi''notifications''payment-handler''storage-access'
-
optionsBrowserContext.GrantPermissionsOptions(опционально)
Возвращает
newCDPSession
Добавлено в: v1.11Сессии CDP поддерживаются только в браузерах на базе Chromium.
Возвращает вновь созданную сессию.
Использование
BrowserContext.newCDPSession(page);
Аргументы
pagePage | Frame# Цель, для которой создаётся новая сессия. Для обратной совместимости параметр называетсяpage, но может быть какPage, так иFrame.
Возвращает
newPage
Добавлено до v1.9Создаёт новую страницу в данном контексте браузера.
Использование
BrowserContext.newPage();
Возвращает
pages
Добавлено до v1.9Возвращает все открытые страницы в контексте.
Использование
BrowserContext.pages();
Возвращает
route
Добавлено до v1.9Маршрутизация предоставляет возможность изменять сетевые запросы, которые выполняются любой страницей в контексте браузера. Как только маршрут включен, каждый запрос, соответствующий шаблону URL, будет приостановлен, если он не будет продолжен, выполнен или прерван.
BrowserContext.route() не будет перехватывать запросы, перехваченные Service Worker. См. эту проблему. Мы рекомендуем отключать Service Workers при использовании перехвата запросов, установив setServiceWorkers в 'block'.
Использование
Пример простого обработчика, который прерывает все запросы изображений:
BrowserContext context = browser.newContext();
context.route("**/*.{png,jpg,jpeg}", route -> route.abort());
Page page = context.newPage();
page.navigate("https://example.com");
browser.close();
или тот же фрагмент кода, но с использованием регулярного выражения:
BrowserContext context = browser.newContext();
context.route(Pattern.compile("(\\.png$)|(\\.jpg$)"), route -> route.abort());
Page page = context.newPage();
page.navigate("https://example.com");
browser.close();
Можно исследовать запрос, чтобы решить, какое действие выполнить с маршрутом. Например, имитировать все запросы, содержащие некоторые данные POST, и оставлять все остальные запросы без изменений:
context.route("/api/**", route -> {
if (route.request().postData().contains("my-string"))
route.fulfill(new Route.FulfillOptions().setBody("mocked-data"));
else
route.resume();
});
Маршруты страниц (настроенные с помощью Page.route()) имеют приоритет над маршрутами контекста браузера, когда запрос соответствует обоим обработчикам.
Чтобы удалить маршрут с его обработчиком, вы можете использовать BrowserContext.unroute().
Включение маршрутизации отключает HTTP-кэш.
Аргументы
-
urlString | Pattern | Predicate<String>#Глобальный шаблон, регулярное выражение или предикат, получающий [URL] для сопоставления при маршрутизации. Когда setBaseURL через параметры контекста был предоставлен и переданный URL является путем, он объединяется через конструктор
new URL(). -
Функция-обработчик для маршрутизации запроса.
-
optionsBrowserContext.RouteOptions(опционально)
Возвращает
routeFromHAR
Добавлено в: v1.23Если указано, сетевые запросы, выполняемые в контексте, будут обслуживаться из HAR-файла. Подробнее о Replaying from HAR.
Playwright не будет обслуживать запросы, перехваченные Service Worker, из HAR-файла. См. эту проблему. Мы рекомендуем отключать Service Workers при использовании перехвата запросов, установив setServiceWorkers в 'block'.
Использование
BrowserContext.routeFromHAR(har);
BrowserContext.routeFromHAR(har, options);
Аргументы
-
Путь к HAR файлу с предварительно записанными сетевыми данными. Если
pathявляется относительным путем, то он разрешается относительно текущей рабочей директории. -
optionsBrowserContext.RouteFromHAROptions(опционально)-
setNotFoundenum HarNotFound { ABORT, FALLBACK }(опционально)#- Если установлено значение 'abort', любой запрос, не найденный в HAR-файле, будет прерван.
- Если установлено значение 'fallback', переходит к следующему обработчику маршрута в цепочке обработчиков.
По умолчанию прерывается.
-
setUpdateboolean (опционально)#Если указано, обновляет данный HAR с фактической сетевой информацией вместо обслуживания из файла. Файл записывается на диск, когда BrowserContext.close() вызывается.
-
setUpdateContentenum RouteFromHarUpdateContentPolicy { EMBED, ATTACH }(опционально) Добавлено в: v1.32#Опциональная настройка для управления содержимым ресурсов. Если указано
attach, ресурсы сохраняются как отдельные файлы или записи в ZIP-архиве. Если указаноembed, содержимое сохраняется в HAR-файле. -
setUpdateModeenum HarMode { FULL, MINIMAL }(опционально) Добавлено в: v1.32#Когда установлено значение
minimal, записывается только информация, необходимая для маршрутизации из HAR. Это исключает размеры, время, страницу, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчаниюminimal. -
setUrlString | Pattern (опционально)#Глобальный шаблон, регулярное выражение или предикат для сопоставления URL запроса. Только запросы с URL, соответствующим шаблону, будут обслуживаться из HAR-файла. Если не указано, все запросы обслуживаются из HAR-файла.
-
Возвращает
routeWebSocket
Добавлено в: v1.48Этот метод позволяет изменять соединения WebSocket, которые создаются любой страницей в контексте браузера.
Обратите внимание, что только WebSocket, созданные после вызова этого метода, будут маршрутизированы. Рекомендуется вызывать этот метод перед созданием любых страниц.
Использование
Ниже приведен пример простого обработчика, который блокирует некоторые сообщения WebSocket. См. WebSocketRoute для получения более подробной информации и примеров.
context.routeWebSocket("/ws", ws -> {
ws.routeSend(message -> {
if ("to-be-blocked".equals(message))
return;
ws.send(message);
});
ws.connect();
});
Аргументы
-
urlString | Pattern | Predicate<String>#Только WebSocket с URL, соответствующим этому шаблону, будут маршрутизированы. Строковый шаблон может быть относительным к параметру контекста setBaseURL.
-
handlerConsumer<WebSocketRoute>#Функция-обработчик для маршрутизации WebSocket.
Возвращает
setDefaultNavigationTimeout
Добавлено до v1.9Эта настройка изменит максимальное время навигации по умолчанию для следующих методов и связанных с ними ярлыков:
- Page.goBack()
- Page.goForward()
- Page.navigate()
- Page.reload()
- Page.setContent()
- Page.waitForNavigation()
Использование
BrowserContext.setDefaultNavigationTimeout(timeout);
Аргументы
setDefaultTimeout
Добавлено до v1.9Эта настройка изменит максимальное время по умолчанию для всех методов, принимающих параметр timeout.
Использование
BrowserContext.setDefaultTimeout(timeout);
Аргументы
setExtraHTTPHeaders
Добавлено до v1.9Дополнительные HTTP-заголовки будут отправляться с каждым запросом, инициированным любой страницей в контексте. Эти заголовки объединяются с дополнительными HTTP-заголовками, установленными для страницы с помощью Page.setExtraHTTPHeaders(). Если страница переопределяет определенный заголовок, будет использоваться значение заголовка, специфичное для страницы, вместо значения заголовка контекста браузера.
BrowserContext.setExtraHTTPHeaders() не гарантирует порядок заголовков в исходящих запросах.
Использование
BrowserContext.setExtraHTTPHeaders(headers);
Аргументы
-
Объект, содержащий дополнительные HTTP-заголовки, которые будут отправляться с каждым запросом. Все значения заголовков должны быть строками.
Возвращает
setGeolocation
Добавлено до v1.9Устанавливает геолокацию контекста. Передача null или undefined эмулирует недоступность позиции.
Использование
browserContext.setGeolocation(new Geolocation(59.95, 30.31667));
Рассмотрите возможность использования BrowserContext.grantPermissions() для предоставления разрешений страницам контекста браузера на чтение его геолокации.
Аргументы
Возвращает
setOffline
Добавлено до v1.9Использование
BrowserContext.setOffline(offline);
Аргументы
Возвращает
storageState
Добавлено до v1.9Возвращает состояние хранилища для этого контекста браузера, содержит текущие куки, снимок локального хранилища и снимок IndexedDB.
Использование
BrowserContext.storageState();
BrowserContext.storageState(options);
Аргументы
optionsBrowserContext.StorageStateOptions(опционально)-
setIndexedDBboolean (опционально) Добавлено в: v1.51#Установите значение
true, чтобы включить IndexedDB в снимок состояния хранилища. Если ваше приложение использует IndexedDB для хранения токенов аутентификации, таких как Firebase Authentication, включите это.примечаниеIndexedDB с типизированными массивами в настоящее время не поддерживается.
-
Путь к файлу для сохранения состояния хранилища. Если setPath является относительным путем, то он разрешается относительно текущей рабочей директории. Если путь не указан, состояние хранилища все равно возвращается, но не будет сохранено на диск.
-
Возвращает
unroute
Добавлено до v1.9Удаляет маршрут, созданный с помощью BrowserContext.route(). Когда handler не указан, удаляет все маршруты для url.
Использование
BrowserContext.unroute(url);
BrowserContext.unroute(url, handler);
Аргументы
-
urlString | Pattern | Predicate<String>#Глобальный шаблон, регулярное выражение или предикат, получающий [URL], использованный для регистрации маршрутизации с BrowserContext.route().
-
handlerConsumer<Route> (опционально)#Опциональная функция-обработчик, использованная для регистрации маршрутизации с BrowserContext.route().
Возвращает
unrouteAll
Добавлено в: v1.41Удаляет все маршруты, созданные с помощью BrowserContext.route() и BrowserContext.routeFromHAR().
Использование
BrowserContext.unrouteAll();
Возвращает
waitForCondition
Добавлено в: v1.32Метод будет блокировать выполнение до тех пор, пока условие не вернет true. Все события Playwright будут обрабатываться, пока метод ожидает выполнения условия.
Использование
Используйте метод для ожидания условия, зависящего от событий страницы:
List<String> failedUrls = new ArrayList<>();
context.onResponse(response -> {
if (!response.ok()) {
failedUrls.add(response.url());
}
});
page1.getByText("Create user").click();
page2.getByText("Submit button").click();
context.waitForCondition(() -> failedUrls.size() > 3);
Аргументы
-
condition[BooleanSupplier]#Условие для ожидания.
-
optionsBrowserContext.WaitForConditionOptions(опционально)-
setTimeoutdouble (опционально)#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Возвращает
waitForConsoleMessage
Добавлено в: v1.34Выполняет действие и ожидает, пока ConsoleMessage не будет зарегистрировано на страницах в контексте. Если предикат предоставлен, он передает значение ConsoleMessage в функцию predicate и ожидает, пока predicate(message) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до того, как событие BrowserContext.onConsoleMessage(handler) будет вызвано.
Использование
BrowserContext.waitForConsoleMessage(callback);
BrowserContext.waitForConsoleMessage(callback, options);
Аргументы
-
optionsBrowserContext.WaitForConsoleMessageOptions(опционально)-
setPredicatePredicate<ConsoleMessage> (опционально)#Получает объект ConsoleMessage и разрешается в истинное значение, когда ожидание должно завершиться.
-
setTimeoutdouble (опционально)#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя метод BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, выполняющий действие, вызывающее событие.
Возвращает
waitForPage
Добавлено в: v1.9Выполняет действие и ожидает, пока в контексте не будет создана новая Page. Если предикат предоставлен, он передает значение Page в функцию predicate и ожидает, пока predicate(event) не вернет истинное значение. Выдаст ошибку, если контекст закроется до создания новой Page.
Использование
BrowserContext.waitForPage(callback);
BrowserContext.waitForPage(callback, options);
Аргументы
-
optionsBrowserContext.WaitForPageOptions(опционально)-
setPredicatePredicate<Page> (опционально)#Получает объект Page и разрешается в истинное значение, когда ожидание должно завершиться.
-
setTimeoutdouble (опционально)#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя метод BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, выполняющий действие, вызывающее событие.
Возвращает
Properties
clock()
Добавлено в: v1.45Playwright имеет возможность имитировать часы и ход времени.
Использование
BrowserContext.clock()
Возвращает
request()
Добавлено в: v1.16Помощник для тестирования API, связанный с этим контекстом. Запросы, сделанные с помощью этого API, будут использовать куки контекста.
Использование
BrowserContext.request()
Возвращает
tracing()
Добавлено в: v1.12Использование
BrowserContext.tracing()
Возвращает
Events
onBackgroundPage(handler)
Добавлено в: v1.11Работает только с постоянным контекстом браузера Chromium.
Вызывается, когда в контексте создается новая фоновая страница.
context.onBackgroundPage(backgroundPage -> {
System.out.println(backgroundPage.url());
});
Использование
BrowserContext.onBackgroundPage(handler)
Данные события
onClose(handler)
Добавлено до v1.9Вызывается, когда контекст браузера закрывается. Это может произойти по одной из следующих причин:
- Контекст браузера закрыт.
- Приложение браузера закрыто или произошло его аварийное завершение.
- Был вызван метод Browser.close().
Использование
BrowserContext.onClose(handler)
Данные события
onConsoleMessage(handler)
Добавлено в: v1.34Вызывается, когда JavaScript на странице вызывает один из методов консольного API, например, console.log или console.dir.
Аргументы, переданные в console.log и страницу, доступны в аргументе обработчика события ConsoleMessage.
Использование
context.onConsoleMessage(msg -> {
for (int i = 0; i < msg.args().size(); ++i)
System.out.println(i + ": " + msg.args().get(i).jsonValue());
});
page.evaluate("() => console.log('hello', 5, { foo: 'bar' })");
Данные события
onDialog(handler)
Добавлено в: v1.34Вызывается, когда появляется JavaScript-диалог, такой как alert, prompt, confirm или beforeunload. Обработчик должен либо Dialog.accept(), либо Dialog.dismiss() диалог - в противном случае страница заморозится, ожидая диалога, и действия, такие как клик, никогда не завершатся.
Использование
context.onDialog(dialog -> {
dialog.accept();
});
Когда отсутствуют обработчики Page.onDialog(handler) или BrowserContext.onDialog(handler), все диалоги автоматически отклоняются.
Данные события
onPage(handler)
Добавлено до v1.9Событие вызывается, когда в BrowserContext создается новая страница. Страница может все еще загружаться. Событие также будет срабатывать для всплывающих страниц. См. также Page.onPopup(handler) для получения событий о всплывающих окнах, относящихся к конкретной странице.
Самый ранний момент, когда страница доступна, это когда она перешла на начальный URL. Например, при открытии всплывающего окна с window.open('http://example.com'), это событие сработает, когда сетевой запрос к "http://example.com" будет выполнен и его ответ начнет загружаться во всплывающем окне. Если вы хотите маршрутизировать/слушать этот сетевой запрос, используйте BrowserContext.route() и BrowserContext.onRequest(handler) соответственно, вместо аналогичных методов на Page.
Page newPage = context.waitForPage(() -> {
page.getByText("open new page").click();
});
System.out.println(newPage.evaluate("location.href"));
Используйте Page.waitForLoadState(), чтобы дождаться, пока страница достигнет определенного состояния (в большинстве случаев это не потребуется).
Использование
BrowserContext.onPage(handler)
Данные события
onRequest(handler)
Добавлено в: v1.12Вызывается, когда запрос отправляется с любой страницы, созданной через этот контекст. Объект request доступен только для чтения. Чтобы слушать запросы только с определенной страницы, используйте Page.onRequest(handler).
Для перехвата и изменения запросов см. BrowserContext.route() или Page.route().
Использование
BrowserContext.onRequest(handler)
Данные события
onRequestFailed(handler)
Добавлено в: v1.12Вызывается, когда запрос не удается выполнить, например, из-за тайм-аута. Чтобы слушать только неудачные запросы с определенной страницы, используйте Page.onRequestFailed(handler).
HTTP-ошибки, такие как 404 или 503, все еще считаются успешными ответами с точки зрения HTTP, поэтому запрос завершится событием BrowserContext.onRequestFinished(handler), а не BrowserContext.onRequestFailed(handler).
Использование
BrowserContext.onRequestFailed(handler)
Данные события
onRequestFinished(handler)
Добавлено в: v1.12Вызывается, когда запрос успешно завершается после загрузки тела ответа. Для успешного ответа последовательность событий: request, response и requestfinished. Чтобы слушать успешные запросы с определенной страницы, используйте Page.onRequestFinished(handler).
Использование
BrowserContext.onRequestFinished(handler)
Данные события
onResponse(handler)
Добавлено в: v1.12Вызывается, когда статус и заголовки response получены для запроса. Для успешного ответа последовательность событий: request, response и requestfinished. Чтобы слушать события ответа с определенной страницы, используйте Page.onResponse(handler).
Использование
BrowserContext.onResponse(handler)
Данные события
onWebError(handler)
Добавлено в: v1.38Вызывается, когда исключение не обработано на любой из страниц в этом контексте. Чтобы слушать ошибки с определенной страницы, используйте Page.onPageError(handler) вместо этого.
Использование
BrowserContext.onWebError(handler)
Данные события