BrowserContext
BrowserContexts предоставляют способ работы с несколькими независимыми сессиями браузера.
Если страница открывает другую страницу, например, с помощью вызова window.open, всплывающее окно будет принадлежать контексту браузера родительской страницы.
Playwright позволяет создавать изолированные непостоянные контексты браузера с помощью метода browser.newContext(). Непостоянные контексты браузера не записывают данные просмотра на диск.
// Create a new incognito browser context
const context = await browser.newContext();
// Create a new page inside context.
const page = await context.newPage();
await page.goto('https://example.com');
// Dispose context once it's no longer needed.
await context.close(); Методы
addCookies
Добавлен до v1.9Добавляет куки в этот контекст браузера. Все страницы в этом контексте будут иметь эти куки. Куки можно получить с помощью browserContext.cookies().
Использование
await browserContext.addCookies([cookieObject1, cookieObject2]);
Аргументы
-
cookiesМассив<Объект>-
nameстрока -
valueстрока -
urlстрока (необязательно)Требуется либо url, либо domain/path. Необязательно.
-
domainстрока (необязательно)Чтобы куки применялись ко всем поддоменам, префикс домена должен быть точкой, например: ".example.com". Требуется либо url, либо domain/path. Необязательно.
-
pathстрока (необязательно)Требуется либо url, либо domain/path. Необязательно.
-
expiresчисло (необязательно)Время Unix в секундах. Необязательно.
-
httpOnlyбулево (необязательно)Необязательно.
-
secureбулево (необязательно)Необязательно.
-
sameSite"Строго" | "Расслабленно" | "Нет" (необязательно)Необязательно.
-
Возвращает
addInitScript
Добавлен до v1.9Добавляет скрипт, который будет оценён в одном из следующих сценариев:
- Всякий раз, когда страница создаётся в контексте браузера или перенаправляется.
- Всякий раз, когда дочерняя рамка присоединяется или перенаправляется на любую страницу в контексте браузера. В этом случае скрипт оценивается в контексте только что присоединившейся рамки.
Скрипт оценивается после создания документа, но до выполнения любого из его скриптов. Это полезно для изменения среды JavaScript, например, для внесения Math.random.
Использование
Пример переопределения Math.random перед загрузкой страницы:
// preload.js Math.random = () => 42;
// In your playwright script, assuming the preload.js file is in same directory.
await browserContext.addInitScript({
path: 'preload.js'
}); примечаниеПорядок оценки нескольких скриптов, установленных с помощью browserContext.addInitScript() и page.addInitScript(), не определён.
Аргументы
-
scriptфункция | строка | объект-
pathстрока (необязательно)Путь к файлу JavaScript. Если
path— относительный путь, то он разрешается относительно текущей рабочей директории. Необязательно. -
contentстрока (необязательно)Сырёный контент скрипта. Необязательно.
Скрипт для оценки на всех страницах в контексте браузера.
-
-
argСериализуемый (необязательно)Необязательный аргумент для передачи в script (поддерживается только при передаче функции).
Возвращает
backgroundPages
примечаниеФоновые страницы поддерживаются только в браузерах на основе Chromium.
Все существующие фоновые страницы в контексте.
Использование
browserContext.backgroundPages();
Возвращает
browser
Добавлен до v1.9Возвращает экземпляр браузера контекста. Если он был запущен как постоянный контекст, возвращается null.
Использование
browserContext.browser();
Возвращает
clearCookies
Добавлен до v1.9Удаляет куки из контекста. Принимает необязательный фильтр.
Использование
await context.clearCookies();
await context.clearCookies({ name: 'session-id' });
await context.clearCookies({ domain: 'my-origin.com' });
await context.clearCookies({ domain: /.*my-origin\.com/ });
await context.clearCookies({ path: '/api/v1' });
await context.clearCookies({ name: 'session-id', domain: 'my-origin.com' }); Аргументы
-
optionsОбъект (необязательно)
Возвращает
clearPermissions
Добавлен до v1.9Очищает все переопределения разрешений для контекста браузера.
Использование
const context = await browser.newContext(); await context.grantPermissions(['clipboard-read']); // do stuff .. context.clearPermissions();
Возвращает
Закрыть
Добавлен до версии 1.9Закрывает контекст браузера. Все страницы, принадлежащие контексту браузера, будут закрыты.
примечаниеКонтекст браузера по умолчанию закрыть нельзя.
Использование
await browserContext.close(); await browserContext.close(options);
Аргументы
-
optionsОбъект (необязательно)-
reasonстрока (необязательно)Причина, которая будет сообщена операциям, прерванным закрытием контекста.
-
Возвращает
Куки
Добавлен до версии 1.9Если URL-адреса не указаны, этот метод возвращает все куки. Если URL-адреса указаны, возвращаются только куки, которые влияют на эти URL-адреса.
Использование
await browserContext.cookies(); await browserContext.cookies(urls);
Аргументы
Возвращает
-
Promise<Массив<Объект>>
-
nameстрока -
valueстрока -
domainстрока -
pathстрока -
expiresчислоВремя Unix в секундах.
-
httpOnlyлогическое значение -
secureлогическое значение -
sameSite"Жесткий" | "Расслабленный" | "Отсутствует"
-
Экспонировать привязку
Добавлен до версии 1.9Метод добавляет функцию, называемую имя, к объекту window каждого фрейма на каждой странице в контексте. При вызове функция выполняет обратный вызов и возвращает Promise, который разрешается значением возвращаемым из обратного вызова. Если обратный вызов возвращает Promise, он будет ожидать его завершения.
Первый аргумент функции обратный вызов содержит информацию о вызывающем объекте: { browserContext: BrowserContext, page: Page, frame: Frame }.
См. page.exposeBinding() для версии, предназначенной только для страниц.
Использование
Пример экспонирования URL страницы для всех фреймов на всех страницах в контексте:
const { webkit } = require('playwright'); // Or 'chromium' or 'firefox'.
(async () => {
const browser = await webkit.launch({ headless: false });
const context = await browser.newContext();
await context.exposeBinding('pageURL', ({ page }) => page.url());
const page = await context.newPage();
await page.setContent(`
<script>
async function onClick() {
document.querySelector('div').textContent = await window.pageURL();
}
</script>
<button onclick="onClick()">Click me</button>
<div></div>
`);
await page.getByRole('button').click();
})(); Аргументы
-
nameстрокаИмя функции в объекте window.
-
callbackфункцияФункция обратного вызова, которая будет вызвана в контексте Playwright.
-
optionsОбъект (необязательно)-
handleлогическое значение (необязательно)УстаревшееЭтот параметр будет удален в будущем.
Указывает, нужно ли передавать аргумент в виде ссылки, а не по значению. При передаче ссылки поддерживается только один аргумент. При передаче по значению поддерживается несколько аргументов.
-
Возвращает
Экспонировать функцию
Добавлен до версии 1.9Метод добавляет функцию, называемую имя, к объекту window каждого фрейма на каждой странице в контексте. При вызове функция выполняет обратный вызов и возвращает Promise, который разрешается значением возвращаемым из обратного вызова.
Если обратный вызов возвращает Promise, он будет ожидать его завершения.
См. page.exposeFunction() для версии, предназначенной только для страниц.
Использование
Пример добавления функции sha256 ко всем страницам в контексте:
const { webkit } = require('playwright'); // Or 'chromium' or 'firefox'.
const crypto = require('crypto');
(async () => {
const browser = await webkit.launch({ headless: false });
const context = await browser.newContext();
await context.exposeFunction('sha256', text =>
crypto.createHash('sha256').update(text).digest('hex'),
);
const page = await context.newPage();
await page.setContent(`
<script>
async function onClick() {
document.querySelector('div').textContent = await window.sha256('PLAYWRIGHT');
}
</script>
<button onclick="onClick()">Click me</button>
<div></div>
`);
await page.getByRole('button').click();
})(); Аргументы
-
nameстрокаИмя функции в объекте window.
-
callbackфункцияФункция обратного вызова, которая будет вызвана в контексте Playwright.
Возвращает
Предоставить разрешения
Добавлен до версии 1.9Предоставляет указанные разрешения контексту браузера. Предоставляет соответствующие разрешения только для данного источника, если указано.
Использование
await browserContext.grantPermissions(permissions); await browserContext.grantPermissions(permissions, options);
Аргументы
-
Разрешение или массив разрешений для предоставления. Разрешения могут иметь одно из следующих значений:
'accelerometer''accessibility-events''ambient-light-sensor''background-sync''camera''clipboard-read''clipboard-write''geolocation''gyroscope''magnetometer''microphone'-
'midi-sysex'(исключительный MIDI) 'midi''notifications''payment-handler''storage-access'
-
optionsОбъект (необязательно)-
originстрока (необязательно)Происхождение, которому предоставляются разрешения, например "https://example.com".
-
Возвращаемое значение
newCDPSession
ПримечаниеСессии CDP поддерживаются только в браузерах на основе Chromium.
Возвращает вновь созданную сессию.
Использование
await browserContext.newCDPSession(page);
Аргументы
-
Целевой объект для создания новой сессии. Для обеспечения обратной совместимости этот параметр называется
page, но он может быть типаPageилиFrame.
Возвращаемое значение
newPage
Добавлена до версии v1.9Создает новую страницу в контексте браузера.
Использование
await browserContext.newPage();
Возвращаемое значение
pages
Добавлена до версии v1.9Возвращает все открытые страницы в контексте.
Использование
browserContext.pages();
Возвращаемое значение
removeAllListeners
Удаляет всех слушателей заданного типа (или всех зарегистрированных слушателей, если тип не задан). Позволяет дождаться завершения асинхронных слушателей или проигнорировать последующие ошибки этих слушателей.
Использование
await browserContext.removeAllListeners(); await browserContext.removeAllListeners(type, options);
Аргументы
-
typeстрока (необязательно) -
optionsОбъект (необязательно)-
behavior"wait" | "ignoreErrors" | "default" (необязательно)Определяет, нужно ли дожидаться завершения уже запущенных слушателей и что делать, если они сгенерируют ошибки:
-
'default'- не дожидаться завершения текущих вызовов слушателей (если таковые имеются), если слушатель сгенерирует ошибку, это может привести к необработанной ошибке -
'wait'- дождаться завершения текущих вызовов слушателей (если таковые имеются) -
'ignoreErrors'- не дожидаться завершения текущих вызовов слушателей (если таковые имеются), все ошибки, сгенерированные слушателями после удаления, будут молча пойманы
-
-
Возвращаемое значение
route
Добавлена до версии v1.9Маршрутизация предоставляет возможность изменять сетевые запросы, выполняемые любой страницей в контексте браузера. После активации маршрутизации каждый запрос, соответствующий шаблону URL, будет приостановлен, пока не будет продолжен, выполнен или прерван.
ПримечаниеbrowserContext.route() не будет перехватывать запросы, перехваченные Service Worker. См. данную проблему. Рекомендуется отключить Service Workers при использовании перехвата запросов, задав serviceWorkers значение
'block'.
Использование
Пример простого обработчика, который прерывает все запросы изображений:
const context = await browser.newContext();
await context.route('**/*.{png,jpg,jpeg}', route => route.abort());
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close(); или тот же фрагмент кода с использованием шаблона регулярного выражения вместо него:
const context = await browser.newContext();
await context.route(/(\.png$)|(\.jpg$)/, route => route.abort());
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close(); Можно проанализировать запрос, чтобы определить действие маршрута. Например, смоделировать все запросы, содержащие какие-либо данные POST, и оставить все другие запросы без изменений:
await context.route('/api/**', async route => {
if (route.request().postData().includes('my-string'))
await route.fulfill({ body: 'mocked-data' });
else
await route.continue();
}); Маршруты страницы (установленные с помощью page.route()) имеют приоритет над маршрутами контекста браузера, когда запрос соответствует обоим обработчикам.
Для удаления маршрута с его обработчиком можно использовать browserContext.unroute().
ПримечаниеВключение маршрутизации отключает кэширование HTTP.
Аргументы
-
urlстрока | регулярное выражение | функция(URL):булевоШаблон glob, шаблон регулярного выражения или предикат, принимающий URL для сопоставления при маршрутизации. Если через параметры контекста был предоставлен baseURL и переданный URL — это путь, он объединяется с помощью конструктора
new URL(). -
handlerфункция(Маршрут, Запрос):обещание<объект> | объектФункция-обработчик для маршрутизации запроса.
-
optionsобъект (необязательно)-
timesчисло (необязательно)Как часто маршрут должен использоваться. По умолчанию он будет использоваться каждый раз.
-
Возвращаемое значение
routeFromHAR
Если указано, сетевые запросы, выполняемые в контексте, будут обслуживаться из файла HAR. Подробнее об этом читайте в разделе воспроизведение из HAR.
Playwright не будет обрабатывать запросы, перехваченные Service Worker из файла HAR. См. эту проблему. Рекомендуется отключить Service Workers при использовании перехвата запросов, установив serviceWorkers в значение 'block'.
Использование
await browserContext.routeFromHAR(har); await browserContext.routeFromHAR(har, options);
Аргументы
-
harстрокаПуть к файлу HAR с предварительно записанными сетевыми данными. Если
path— это относительный путь, то он будет разрешён относительно текущей рабочей директории. -
optionsобъект (необязательно)-
notFound"abort" | "fallback" (необязательно)- Если установлено значение 'abort', любые запросы, не найденные в файле HAR, будут прерваны.
- Если установлено значение 'fallback', выполнение перейдёт к следующему обработчику маршрута в цепочке обработчиков.
По умолчанию установлено значение 'abort'.
-
updateбулево значение (необязательно)Если указано, данный HAR будет обновлён фактическими сетевыми данными вместо загрузки из файла. Файл будет записан на диск при вызове browserContext.close().
-
updateContent"embed" | "attach" (необязательно)Необязательная настройка для управления управлением содержимым ресурсов. Если
attachуказано, ресурсы сохраняются как отдельные файлы или записи в архиве ZIP. Еслиembedуказано, содержимое сохраняется внутри файла HAR. -
updateMode"full" | "minimal" (необязательно)Если установлено значение
minimal, записывается только информация, необходимая для маршрутизации из HAR. Это опускает размеры, временные метки, страницы, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчанию установлено значениеminimal. -
urlстрока | RegExp (необязательно)Шаблон glob, регулярное выражение или предикат для сопоставления URL запроса. Только запросы с URL, соответствующие шаблону, будут загружаться из файла HAR. Если не указано, все запросы загружаются из файла HAR.
-
Возвращает
routeWebSocket
Этот метод позволяет изменять подключения WebSocket, которые создаются любой страницей в контексте браузера.
Обратите внимание, что только WebSocket, созданные после вызова этого метода, будут маршрутизированы. Рекомендуется вызывать этот метод до создания любых страниц.
Использование
Ниже приведен пример простого обработчика, который блокирует некоторые сообщения WebSocket. См. WebSocketRoute для получения дополнительных сведений и примеров.
await context.routeWebSocket('/ws', async ws => {
ws.routeSend(message => {
if (message === 'to-be-blocked')
return;
ws.send(message);
});
await ws.connect();
}); Аргументы
-
urlстрока | RegExp | функция(URL):булево значениеМаршрутизируются только WebSocket с URL, соответствующими этому шаблону. Строковый шаблон может быть относительным к параметру контекста baseURL.
-
handlerфункция(WebSocketRoute):Promise<объект> | объектФункция-обработчик для маршрутизации WebSocket.
Возвращает
serviceWorkers
примечаниеService workers поддерживаются только в браузерах на основе Chromium.
Все существующие service workers в контексте.
Использование
browserContext.serviceWorkers();
Возвращает
setDefaultNavigationTimeout
Добавлена до версии 1.9Эта настройка изменит максимальное время навигации по умолчанию для следующих методов и связанных сокращений:
примечание
Использование
browserContext.setDefaultNavigationTimeout(timeout);
Аргументы
-
timeoutчислоМаксимальное время навигации в миллисекундах
setDefaultTimeout
Добавлена до версии 1.9Эта настройка изменит максимальное время по умолчанию для всех методов, принимающих параметр timeout.
примечание
Использование
browserContext.setDefaultTimeout(timeout);
Аргументы
-
timeoutчислоМаксимальное время в миллисекундах
setExtraHTTPHeaders
Добавлена до версии 1.9Дополнительные HTTP-заголовки будут отправляться с каждым запросом, инициированным любой страницей в контексте. Эти заголовки объединяются с страницами-специфичными дополнительными HTTP-заголовками, установленными с помощью page.setExtraHTTPHeaders(). Если страница переопределяет определённый заголовок, значение заголовка страницы будет использоваться вместо значения заголовка контекста браузера.
примечаниеbrowserContext.setExtraHTTPHeaders() не гарантирует порядок заголовков в исходящих запросах.
Использование
await browserContext.setExtraHTTPHeaders(headers);
Аргументы
-
headersобъект<строка, строка>Объект, содержащий дополнительные HTTP-заголовки, которые будут отправляться с каждым запросом. Все значения заголовков должны быть строками.
Возвращает
setGeolocation
Добавлен до версии v1.9Устанавливает геолокацию контекста. Передача значений null или undefined эмулирует недоступность позиции.
Использование
await browserContext.setGeolocation({ latitude: 59.95, longitude: 30.31667 }); примечаниеРассмотрите использование browserContext.grantPermissions() для предоставления разрешений страницам браузерного контекста на чтение его геолокации.
Аргументы
Возвращает
setOffline
Добавлен до версии v1.9Использование
await browserContext.setOffline(offline);
Аргументы
-
offlineбулевоЭмулировать отсутствие сети для браузерного контекста.
Возвращает
storageState
Добавлен до версии v1.9Возвращает состояние хранилища для данного браузерного контекста, содержит текущий снимок куки и локального хранилища.
Использование
await browserContext.storageState(); await browserContext.storageState(options);
Аргументы
-
optionsОбъект (необязательно)
Возвращает
- Promise<Объект>
unroute
Добавлен до версии v1.9Удаляет маршрут, созданный с помощью browserContext.route(). Если handler не указан, удаляет все маршруты для url.
Использование
await browserContext.unroute(url); await browserContext.unroute(url, handler);
Аргументы
-
urlстрока | RegExp | функция(URL):логическоеШаблон glob, шаблон regex или предикат, принимающий URL, используемый для регистрации маршрута с помощью browserContext.route().
-
handlerфункция(Маршрут, Запрос):Promise<Объект> | Объект (необязательно)Необязательная функция обработчика, используемая для регистрации маршрута с помощью browserContext.route().
Возвращает
unrouteAll
Удаляет все маршруты, созданные с помощью browserContext.route() и browserContext.routeFromHAR().
Использование
await browserContext.unrouteAll(); await browserContext.unrouteAll(options);
Аргументы
-
optionsОбъект (необязательно)-
behavior"wait" | "ignoreErrors" | "default" (необязательно)Указывает, следует ли ожидать уже запущенных обработчиков и что делать, если они выбросят ошибки:
-
'default'- не ожидать завершения текущих вызовов обработчика (если таковые есть), если обработчик, не прошедший маршрутизацию, выбросит ошибку, это может привести к необработанной ошибке -
'wait'- ожидать завершения текущих вызовов обработчика (если таковые есть) -
'ignoreErrors'- не ожидать завершения текущих вызовов обработчика (если таковые есть), все ошибки, выброшенные обработчиками после отмены маршрутизации, будут молча перехвачены
-
-
Возвращает
waitForEvent
Добавлен до версии 1.9Ожидает срабатывания события и передает его значение в предикатную функцию. Возвращает значение, когда предикат возвращает истинное значение. Выбросит ошибку, если контекст закроется до срабатывания события. Возвращает значение данных события.
Использование
const pagePromise = context.waitForEvent('page');
await page.getByRole('button').click();
const page = await pagePromise; Аргументы
-
eventстрокаИмя события, такое же, как вы передавали в
browserContext.on(event). -
optionsOrPredicateфункция | Объект (необязательно)-
predicateфункцияПолучает данные события и возвращает истинное значение, когда ожидание должно завершиться.
-
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью опцииactionTimeoutв конфигурации или с помощью метода browserContext.setDefaultTimeout().
Либо предикат, который получает событие, либо объект опций. Необязательно.
-
-
optionsОбъект (необязательно)-
predicateфункция (необязательно)Получает данные события и возвращает истинное значение, когда ожидание должно завершиться.
-
Возвращает
Свойства
clock
Playwright имеет возможность имитировать часы и течение времени.
Использование
browserContext.clock
Тип
request
Вспомогательная функция тестирования API, связанная с этим контекстом. Запросы, выполненные с помощью этого API, будут использовать куки контекста.
Использование
browserContext.request
Тип
tracing
Использование
browserContext.tracing
Тип
События
on('backgroundpage')
примечаниеРаботает только с постоянным контекстом браузера Chromium.
Срабатывает при создании новой фоновой страницы в контексте.
const backgroundPage = await context.waitForEvent('backgroundpage'); Использование
browserContext.on('backgroundpage', data => {}); Данные события
on('close')
Добавлен до версии 1.9Срабатывает при закрытии контекста браузера. Это может произойти по одной из следующих причин:
- Контекст браузера закрыт.
- Приложение браузера закрыто или завершило работу.
- Был вызван метод browser.close().
Использование
browserContext.on('close', data => {}); Данные события
on('console')
Срабатывает, когда JavaScript внутри страницы вызывает один из методов API консоли, например, console.log или console.dir.
Аргументы, передаваемые в console.log, и страница доступны в аргументе обработчика событий ConsoleMessage.
Использование
context.on('console', async msg => {
const values = [];
for (const arg of msg.args())
values.push(await arg.jsonValue());
console.log(...values);
});
await page.evaluate(() => console.log('hello', 5, { foo: 'bar' })); Данные события
on('dialog')
Срабатывает при появлении диалогового окна JavaScript, такого как alert, prompt, confirm или beforeunload. Обработчик обязательно должен либо dialog.accept(), либо dialog.dismiss() диалоговое окно — в противном случае страница будет зависать, ожидая диалогового окна, и действия, такие как щелчок, никогда не завершатся.
Использование
context.on('dialog', dialog => {
dialog.accept();
}); примечаниеЕсли нет обработчиков page.on('dialog') или browserContext.on('dialog'), все диалоговые окна автоматически закрываются.
Данные события
on('page')
Добавлен до версии 1.9Событие срабатывает при создании новой страницы в BrowserContext. Страница может быть ещё загружается. Событие также будет срабатывать для всплывающих страниц. См. также page.on('popup') для получения событий о всплывающих окнах, относящихся к конкретной странице.
Самый ранний момент, когда страница доступна, это когда она перешла на начальный URL. Например, при открытии всплывающего окна с window.open('http://example.com') это событие сработает, когда сетевой запрос к "http://example.com" завершится, и его ответ начнёт загружаться во всплывающем окне. Если вы хотите маршрутизировать/прослушать этот сетевой запрос, используйте browserContext.route() и browserContext.on('request') соответственно, вместо аналогичных методов на странице Страница.
const newPagePromise = context.waitForEvent('page');
await page.getByText('open new page').click();
const newPage = await newPagePromise;
console.log(await newPage.evaluate('location.href')); примечаниеИспользуйте page.waitForLoadState(), чтобы подождать, пока страница достигнет определенного состояния (вам, скорее всего, это не нужно).
Использование
browserContext.on('page', data => {}); Данные события
on('request')
Срабатывает при запросе с любой страницы, созданной через этот контекст. Объект request является только для чтения. Чтобы прослушивать запросы только с определённой страницы, используйте page.on('request').
Чтобы перехватить и изменить запросы, см. browserContext.route() или page.route().
Использование
browserContext.on('request', data => {}); Данные события
END_OF_DOCUMENT_MARKERon('requestfailed')
Вызвается, когда запрос завершается ошибкой, например, из-за истечения времени ожидания. Чтобы прослушивать только запросы, завершившиеся ошибкой с определённой страницы, используйте page.on('requestfailed').
примечаниеОтветы HTTP-ошибок, такие как 404 или 503, всё ещё являются успешными ответами с точки зрения HTTP, поэтому запрос завершится событием browserContext.on('requestfinished'), а не browserContext.on('requestfailed').
Использование
browserContext.on('requestfailed', data => {}); Данные события
on('requestfinished')
Вызвается, когда запрос завершается успешно после загрузки тела ответа. После успешного ответа последовательность событий — request, response и requestfinished. Чтобы прослушивать успешные запросы с определённой страницы, используйте page.on('requestfinished').
Использование
browserContext.on('requestfinished', data => {}); Данные события
on('response')
Вызвается, когда статус и заголовки ответа получены для запроса. После успешного ответа последовательность событий — request, response и requestfinished. Чтобы прослушивать события ответа с определённой страницы, используйте page.on('response').
Использование
browserContext.on('response', data => {}); Данные события
on('serviceworker')
примечаниеСервисные рабочие процессы поддерживаются только в браузерах на основе Chromium.
Вызвается при создании нового сервисного рабочего процесса в контексте.
Использование
browserContext.on('serviceworker', data => {}); Данные события
on('weberror')
Вызвается, когда исключение необработано ни на одной из страниц в этом контексте. Чтобы прослушивать ошибки с определённой страницы, используйте page.on('pageerror') вместо этого.
Использование
browserContext.on('weberror', data => {}); Данные события
Устаревшее
setHTTPCredentials
Добавлен до v1.9УстаревшийБраузеры могут кэшировать учётные данные после успешной аутентификации. Создайте новый контекст браузера вместо этого.
Использование
await browserContext.setHTTPCredentials(httpCredentials);
Аргументы
Возвращаемое значение
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-browsercontext