跳到主要內容

BrowserContext

BrowserContexts 提供操作多個獨立瀏覽器會話的方法。

如果頁面開啟另一個頁面,例如透過 window.open 呼叫,則彈出視窗將屬於父頁面的瀏覽器上下文。

Playwright 允許使用 Browser.newContext() 方法建立隔離的非持久性瀏覽器上下文。非持久性瀏覽器上下文不會將任何瀏覽資料寫入磁碟。

// Create a new incognito browser context
BrowserContext context = browser.newContext();
// Create a new page inside context.
Page page = context.newPage();
page.navigate("https://example.com");
// Dispose context once it is no longer needed.
context.close();

方法

addCookies

v1.9 之前加入 browserContext.addCookies

將 Cookie 新增到此瀏覽器上下文中。此上下文中的所有頁面都將安裝這些 Cookie。Cookie 可以透過 BrowserContext.cookies() 取得。

用法

browserContext.addCookies(Arrays.asList(cookieObject1, cookieObject2));

參數

  • cookies List<Cookie>#
    • setName String

    • setValue String

    • setUrl String (可選)

      url 或 domain / path 為必填。可選。

    • setDomain String (可選)

      為了讓 Cookie 也適用於所有子網域,請在網域前加上點,例如:".example.com"。url 或 domain / path 為必填。可選。

    • setPath String (可選)

      url 或 domain / path 為必填 可選。

    • setExpires double (可選)

      Unix 時間,以秒為單位。可選。

    • setHttpOnly boolean (可選)

      可選。

    • setSecure boolean (可選)

      可選。

    • setSameSite enum SameSiteAttribute { STRICT, LAX, NONE } (可選)

      可選。

回傳


addInitScript

v1.9 之前加入 browserContext.addInitScript

新增一個腳本,該腳本將在以下其中一種情況下評估

  • 每當在瀏覽器上下文中建立或導航頁面時。
  • 每當在瀏覽器上下文中任何頁面中附加或導航子框架時。在這種情況下,腳本將在新附加框架的上下文中評估。

腳本在文件建立之後但在其任何腳本執行之前評估。這對於修改 JavaScript 環境很有用,例如,為 Math.random 植入種子。

用法

在頁面載入之前覆寫 Math.random 的範例

// preload.js
Math.random = () => 42;
// In your playwright script, assuming the preload.js file is in same directory.
browserContext.addInitScript(Paths.get("preload.js"));
注意

透過 BrowserContext.addInitScript()Page.addInitScript() 安裝的多個腳本的評估順序未定義。

參數

  • script String | Path#

    要在瀏覽器上下文中所有頁面中評估的腳本。

回傳


backgroundPages

加入於:v1.11 browserContext.backgroundPages
注意

背景頁面僅在基於 Chromium 的瀏覽器上支援。

上下文中所有現有的背景頁面。

用法

BrowserContext.backgroundPages();

回傳


browser

v1.9 之前加入 browserContext.browser

傳回上下文的瀏覽器實例。如果它是作為持久性上下文啟動的,則傳回 null。

用法

BrowserContext.browser();

回傳


clearCookies

v1.9 之前加入 browserContext.clearCookies

從上下文中移除 Cookie。接受可選的篩選器。

用法

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"));

參數

  • options BrowserContext.ClearCookiesOptions (可選)
    • setDomain String | Pattern (可選)加入於:v1.43#

      僅移除具有給定網域的 Cookie。

    • setName String | Pattern (可選)加入於:v1.43#

      僅移除具有給定名稱的 Cookie。

    • setPath String | Pattern (可選)加入於:v1.43#

      僅移除具有給定路徑的 Cookie。

回傳


clearPermissions

v1.9 之前加入 browserContext.clearPermissions

清除瀏覽器上下文的所有權限覆寫。

用法

BrowserContext context = browser.newContext();
context.grantPermissions(Arrays.asList("clipboard-read"));
// do stuff ..
context.clearPermissions();

回傳


close

v1.9 之前加入 browserContext.close

關閉瀏覽器上下文。屬於瀏覽器上下文的所有頁面都將關閉。

注意

預設瀏覽器上下文無法關閉。

用法

BrowserContext.close();
BrowserContext.close(options);

參數

  • options BrowserContext.CloseOptions (可選)
    • setReason String (可選)加入於:v1.40#

      要報告給因上下文關閉而中斷的操作的原因。

回傳


cookies

v1.9 之前加入 browserContext.cookies

如果未指定 URL,此方法會傳回所有 Cookie。如果指定了 URL,則僅傳回影響這些 URL 的 Cookie。

用法

BrowserContext.cookies();
BrowserContext.cookies(urls);

參數

回傳


exposeBinding

v1.9 之前加入 browserContext.exposeBinding

此方法在上下文中每個頁面的每個框架的 window 物件上新增一個名為 name 的函數。呼叫時,該函數會執行 callback 並傳回一個 Promise,該 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();
}
}
}

參數

  • name String#

    window 物件上函數的名稱。

  • callback BindingCallback#

    將在 Playwright 的上下文中呼叫的回呼函數。

  • options BrowserContext.ExposeBindingOptions (可選)

    • setHandle boolean (可選)#

      已棄用

      此選項將在未來版本中移除。

      是否將引數作為控制代碼傳遞,而不是依值傳遞。當傳遞控制代碼時,僅支援一個引數。當依值傳遞時,支援多個引數。

回傳


exposeFunction

v1.9 之前加入 browserContext.exposeFunction

此方法在上下文中每個頁面的每個框架的 window 物件上新增一個名為 name 的函數。呼叫時,該函數會執行 callback 並傳回一個 Promise,該 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();
}
}
}

參數

  • name String#

    window 物件上函數的名稱。

  • callback FunctionCallback#

    將在 Playwright 的上下文中呼叫的回呼函數。

回傳


grantPermissions

v1.9 之前加入 browserContext.grantPermissions

授予瀏覽器上下文指定的權限。如果指定,則僅授予給定來源的相應權限。

用法

BrowserContext.grantPermissions(permissions);
BrowserContext.grantPermissions(permissions, options);

參數

  • permissions List<String>#

    要授予的權限清單。

    危險

    瀏覽器之間,甚至在同一瀏覽器的不同版本之間,支援的權限也不同。任何權限都可能在更新後停止運作。

    以下是一些可能受到某些瀏覽器支援的權限

    • 'accelerometer'
    • 'ambient-light-sensor'
    • 'background-sync'
    • 'camera'
    • 'clipboard-read'
    • 'clipboard-write'
    • 'geolocation'
    • 'gyroscope'
    • 'magnetometer'
    • 'microphone'
    • 'midi-sysex' (系統專屬 midi)
    • 'midi'
    • 'notifications'
    • 'payment-handler'
    • 'storage-access'
  • options BrowserContext.GrantPermissionsOptions (可選)

回傳


newCDPSession

加入於:v1.11 browserContext.newCDPSession
注意

CDP 會話僅在基於 Chromium 的瀏覽器上支援。

傳回新建立的會話。

用法

BrowserContext.newCDPSession(page);

參數

  • page Page | Frame#

    要為其建立新會話的目標。為了向後相容性,此參數名為 page,但它可以是 PageFrame 類型。

回傳


newPage

v1.9 之前加入 browserContext.newPage

在瀏覽器上下文中建立新頁面。

用法

BrowserContext.newPage();

回傳


pages

v1.9 之前加入 browserContext.pages

傳回上下文中所有開啟的頁面。

用法

BrowserContext.pages();

回傳


route

v1.9 之前加入 browserContext.route

路由提供修改瀏覽器上下文中任何頁面發出的網路請求的功能。啟用路由後,每個符合 url 模式的請求都會停滯,除非它繼續、完成或中止。

注意

BrowserContext.route() 不會攔截 Service Worker 攔截的請求。請參閱 問題。我們建議在使用請求攔截時停用 Service Worker,方法是將 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();

或使用 regex 模式的相同程式碼片段

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 快取。

參數

  • url String | Pattern | Predicate<String>#

    在路由時要比對的 glob 模式、regex 模式或謂詞 [URL]。當透過上下文選項提供 setBaseURL 且傳遞的 URL 是路徑時,它會透過 new URL() 建構函式合併。

  • handler Consumer<Route>#

    用於路由請求的處理常式函數。

  • options BrowserContext.RouteOptions (可選)

    • setTimes int (可選)加入於:v1.15#

      應該使用路由的頻率。預設情況下,每次都會使用。

回傳


routeFromHAR

加入於:v1.23 browserContext.routeFromHAR

如果指定,則在此上下文中發出的網路請求將從 HAR 檔案提供。閱讀更多關於 從 HAR 重新播放 的資訊。

Playwright 不會從 HAR 檔案提供 Service Worker 攔截的請求。請參閱 問題。我們建議在使用請求攔截時停用 Service Worker,方法是將 setServiceWorkers 設定為 'block'

用法

BrowserContext.routeFromHAR(har);
BrowserContext.routeFromHAR(har, options);

參數

  • har Path#

    具有預先錄製網路資料的 HAR 檔案的路徑。如果 path 是相對路徑,則會相對於目前的工作目錄解析它。

  • options BrowserContext.RouteFromHAROptions (可選)

    • setNotFound enum HarNotFound { ABORT, FALLBACK } (可選)#

      • 如果設定為 'abort',則 HAR 檔案中找不到的任何請求都將中止。
      • 如果設定為 'fallback',則會退回到處理常式鏈中的下一個路由處理常式。

      預設為中止。

    • setUpdate boolean (可選)#

      如果指定,則使用實際網路資訊更新給定的 HAR,而不是從檔案提供服務。當呼叫 BrowserContext.close() 時,檔案會寫入磁碟。

    • setUpdateContent enum RouteFromHarUpdateContentPolicy { EMBED, ATTACH } (可選)加入於:v1.32#

      用於控制資源內容管理的可選設定。如果指定 attach,則資源會以個別檔案或 ZIP 歸檔中的條目形式保存。如果指定 embed,則內容會內嵌儲存在 HAR 檔案中。

    • setUpdateMode enum HarMode { FULL, MINIMAL } (可選)加入於:v1.32#

      當設定為 minimal 時,僅記錄從 HAR 路由所需的資訊。這會省略大小、計時、頁面、Cookie、安全性以及其他在從 HAR 重新播放時未使用的 HAR 資訊類型。預設為 minimal

    • setUrl String | Pattern (可選)#

      用於比對請求 URL 的 glob 模式、正規表示式或謂詞。只有 URL 符合模式的請求才會從 HAR 檔案提供服務。如果未指定,則所有請求都從 HAR 檔案提供服務。

回傳


routeWebSocket

加入於:v1.48 browserContext.routeWebSocket

此方法允許修改瀏覽器上下文中任何頁面建立的 websocket 連線。

請注意,只有在此方法呼叫之後建立的 WebSocket 才會被路由。建議在建立任何頁面之前呼叫此方法。

用法

以下是一個簡單處理常式的範例,該處理常式會封鎖某些 websocket 訊息。請參閱 WebSocketRoute 以取得更多詳細資訊和範例。

context.routeWebSocket("/ws", ws -> {
ws.routeSend(message -> {
if ("to-be-blocked".equals(message))
return;
ws.send(message);
});
ws.connect();
});

參數

回傳


setDefaultNavigationTimeout

v1.9 之前加入 browserContext.setDefaultNavigationTimeout

此設定將變更以下方法和相關快速鍵的預設最大導航時間

用法

BrowserContext.setDefaultNavigationTimeout(timeout);

參數

  • timeout double#

    最大導航時間,以毫秒為單位


setDefaultTimeout

v1.9 之前加入 browserContext.setDefaultTimeout

此設定將變更所有接受 timeout 選項的方法的預設最大時間。

用法

BrowserContext.setDefaultTimeout(timeout);

參數

  • timeout double#

    最大時間,以毫秒為單位。傳遞 0 以停用逾時。


setExtraHTTPHeaders

v1.9 之前加入 browserContext.setExtraHTTPHeaders

額外的 HTTP 標頭將與上下文中任何頁面啟動的每個請求一起傳送。這些標頭會與使用 Page.setExtraHTTPHeaders() 設定的頁面特定額外 HTTP 標頭合併。如果頁面覆寫特定標頭,則將使用頁面特定標頭值,而不是瀏覽器上下文標頭值。

注意

BrowserContext.setExtraHTTPHeaders() 不保證傳出請求中標頭的順序。

用法

BrowserContext.setExtraHTTPHeaders(headers);

參數

  • headers Map<String, String>#

    一個物件,其中包含要與每個請求一起傳送的額外 HTTP 標頭。所有標頭值都必須是字串。

回傳


setGeolocation

v1.9 之前加入 browserContext.setGeolocation

設定上下文的地理位置。傳遞 nullundefined 會模擬位置不可用。

用法

browserContext.setGeolocation(new Geolocation(59.95, 30.31667));
注意

考慮使用 BrowserContext.grantPermissions() 授予瀏覽器上下文頁面讀取其地理位置的權限。

參數

  • geolocation null | Geolocation#
    • setLatitude double

      緯度,介於 -90 和 90 之間。

    • setLongitude double

      經度,介於 -180 和 180 之間。

    • setAccuracy double (可選)

      非負準確度值。預設為 0

回傳


setOffline

v1.9 之前加入 browserContext.setOffline

用法

BrowserContext.setOffline(offline);

參數

  • offline boolean#

    是否模擬瀏覽器 context 離線網路狀態。

回傳


storageState

v1.9 之前加入 browserContext.storageState

傳回此瀏覽器 context 的儲存狀態,包含目前的 cookies 和本機儲存快照。

用法

BrowserContext.storageState();
BrowserContext.storageState(options);

參數

  • options BrowserContext.StorageStateOptions (optional)
    • setPath Path (optional)#

      儲存儲存狀態的檔案路徑。如果 setPath 是相對路徑,則會相對於目前的工作目錄解析。如果未提供路徑,仍會傳回儲存狀態,但不會儲存到磁碟。

回傳


unroute

v1.9 之前加入 browserContext.unroute

移除使用 BrowserContext.route() 建立的路由。當未指定 handler 時,會移除 url 的所有路由。

用法

BrowserContext.unroute(url);
BrowserContext.unroute(url, handler);

參數

回傳


unrouteAll

新增於:v1.41 browserContext.unrouteAll

移除使用 BrowserContext.route()BrowserContext.routeFromHAR() 建立的所有路由。

用法

BrowserContext.unrouteAll();

回傳


waitForCondition

加入於:v1.32 browserContext.waitForCondition

此方法會封鎖直到條件傳回 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]#

    要等待的條件。

  • options BrowserContext.WaitForConditionOptions (optional)

回傳


waitForConsoleMessage

新增於:v1.34 browserContext.waitForConsoleMessage

執行動作並等待 context 中的頁面記錄 ConsoleMessage。如果提供謂詞,它會將 ConsoleMessage 值傳遞到 predicate 函式中,並等待 predicate(message) 傳回真值。如果在 BrowserContext.onConsoleMessage(handler) 事件觸發之前頁面已關閉,則會擲回錯誤。

用法

BrowserContext.waitForConsoleMessage(callback);
BrowserContext.waitForConsoleMessage(callback, options);

參數

  • options BrowserContext.WaitForConsoleMessageOptions (optional)

  • callback Runnable#

    執行觸發事件之動作的回呼。

回傳


waitForPage

新增於:v1.9 browserContext.waitForPage

執行動作並等待在 context 中建立新的 Page。如果提供謂詞,它會將 Page 值傳遞到 predicate 函式中,並等待 predicate(event) 傳回真值。如果在建立新的 Page 之前 context 已關閉,則會擲回錯誤。

用法

BrowserContext.waitForPage(callback);
BrowserContext.waitForPage(callback, options);

參數

  • options BrowserContext.WaitForPageOptions (optional)

    • setPredicate Predicate<Page> (optional)#

      接收 Page 物件,並在應解析等待時解析為真值。

    • setTimeout double (optional)#

      等待的最長時間 (毫秒)。預設值為 30000 (30 秒)。傳遞 0 以停用逾時。可以使用 BrowserContext.setDefaultTimeout() 方法變更預設值。

  • callback Runnable#

    執行觸發事件之動作的回呼。

回傳


屬性

clock()

新增於:v1.45 browserContext.clock()

Playwright 具有模擬時鐘和時間流逝的功能。

用法

BrowserContext.clock()

回傳


request()

新增於:v1.16 browserContext.request()

與此 context 相關聯的 API 測試 helper。使用此 API 提出的請求將使用 context cookies。

用法

BrowserContext.request()

回傳


tracing()

新增於:v1.12 browserContext.tracing()

用法

BrowserContext.tracing()

回傳


事件

onBackgroundPage(handler)

加入於:v1.11 browserContext.onBackgroundPage(handler)
注意

僅適用於 Chromium 瀏覽器的持續性 context。

當在此 context 中建立新的背景頁面時發出。

context.onBackgroundPage(backgroundPage -> {
System.out.println(backgroundPage.url());
});

用法

BrowserContext.onBackgroundPage(handler)

事件資料


onClose(handler)

v1.9 之前加入 browserContext.onClose(handler)

當瀏覽器 context 關閉時發出。發生原因可能如下:

  • 瀏覽器 context 已關閉。
  • 瀏覽器應用程式已關閉或崩潰。
  • 已呼叫 Browser.close() 方法。

用法

BrowserContext.onClose(handler)

事件資料


onConsoleMessage(handler)

新增於:v1.34 browserContext.onConsoleMessage(handler)

當頁面內的 JavaScript 呼叫其中一個 console API 方法 (例如 console.logconsole.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 browserContext.onDialog(handler)

當 JavaScript 對話方塊出現時發出,例如 alertpromptconfirmbeforeunload。Listener **必須** Dialog.accept()Dialog.dismiss() 對話方塊 - 否則頁面會 凍結 等待對話方塊,而點擊等動作永遠不會完成。

用法

context.onDialog(dialog -> {
dialog.accept();
});
注意

當沒有 Page.onDialog(handler)BrowserContext.onDialog(handler) listener 時,所有對話方塊都會自動關閉。

事件資料


onPage(handler)

v1.9 之前加入 browserContext.onPage(handler)

當在 BrowserContext 中建立新 Page 時發出此事件。頁面可能仍在載入中。此事件也會針對彈出式頁面觸發。另請參閱 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 browserContext.onRequest(handler)

當從透過此 context 建立的任何頁面發出請求時發出。 request 物件是唯讀的。若只要監聽來自特定頁面的請求,請使用 Page.onRequest(handler)

為了攔截和變更請求,請參閱 BrowserContext.route()Page.route()

用法

BrowserContext.onRequest(handler)

事件資料


onRequestFailed(handler)

新增於:v1.12 browserContext.onRequestFailed(handler)

當請求失敗時發出,例如逾時。若只要監聽來自特定頁面的失敗請求,請使用 Page.onRequestFailed(handler)

注意

HTTP 錯誤回應 (例如 404 或 503) 從 HTTP 的角度來看仍然是成功的回應,因此請求將使用 BrowserContext.onRequestFinished(handler) 事件完成,而不是 BrowserContext.onRequestFailed(handler)

用法

BrowserContext.onRequestFailed(handler)

事件資料


onRequestFinished(handler)

新增於:v1.12 browserContext.onRequestFinished(handler)

當請求在下載回應主體後成功完成時發出。對於成功的回應,事件順序為 requestresponserequestfinished。若要監聽來自特定頁面的成功請求事件,請使用 Page.onRequestFinished(handler)

用法

BrowserContext.onRequestFinished(handler)

事件資料


onResponse(handler)

新增於:v1.12 browserContext.onResponse(handler)

當收到請求的 response 狀態和標頭時發出。對於成功的回應,事件順序為 requestresponserequestfinished。若要監聽來自特定頁面的回應事件,請使用 Page.onResponse(handler)

用法

BrowserContext.onResponse(handler)

事件資料


onWebError(handler)

新增於:v1.38 browserContext.onWebError(handler)

當此 context 中任何頁面發生未處理的例外狀況時發出。若要監聽來自特定頁面的錯誤,請改用 Page.onPageError(handler)

用法

BrowserContext.onWebError(handler)

事件資料