跳至主要內容
版本:23.11.1

API 參考

類別

類別

描述

Accessibility

Accessibility 類別提供了檢查瀏覽器輔助功能樹的方法。輔助功能樹由輔助技術使用,例如螢幕閱讀器開關

備註

輔助功能是非常平台特定的東西。在不同的平台上,有不同的螢幕閱讀器,可能會產生截然不同的輸出。

Blink - Chrome 的渲染引擎 - 有一個「輔助功能樹」的概念,然後將其轉換為不同的平台特定 API。輔助功能命名空間讓使用者可以存取 Blink 輔助功能樹。

當從 Blink AX 樹轉換為平台特定 AX 樹或由輔助技術本身轉換時,大多數輔助功能樹都會被過濾掉。預設情況下,Puppeteer 會嘗試近似這種過濾,僅公開樹中「有趣」的節點。

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 Accessibility 類別的子類別。

Browser

Browser 代表一個瀏覽器實例,該實例可以透過

Browser 發出各種事件,這些事件記錄在 BrowserEvent 列舉中。

備註

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 Browser 類別的子類別。

BrowserContext

BrowserContext 代表 瀏覽器 內個別的使用者環境。

瀏覽器 啟動時,它至少有一個預設的 瀏覽器環境。可以使用 Browser.createBrowserContext() 建立其他環境。每個環境都有獨立的儲存空間(Cookie/localStorage/等)。

BrowserContext 發出各種事件,這些事件記錄在 BrowserContextEvent 列舉中。

如果 頁面 開啟另一個 頁面,例如使用 window.open,則彈出視窗將屬於父 頁面的瀏覽器環境

備註

在 Chrome 中,所有非預設環境都是無痕模式,如果您在啟動瀏覽器時提供 --incognito 參數,預設瀏覽器環境也可能處於無痕模式。

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 BrowserContext 類別的子類別。

BrowserLauncher

描述啟動器 - 一個能夠建立和啟動瀏覽器實例的類別。

備註

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 BrowserLauncher 類別的子類別。

CDPSession

CDPSession 實例用於使用原始 Chrome Devtools 通訊協定進行通訊。

備註

可以使用 CDPSession.send() 方法呼叫通訊協定方法,並可以使用 CDPSession.on 方法訂閱通訊協定事件。

實用連結:DevTools 通訊協定檢視器DevTools 通訊協定入門

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 CDPSession 類別的子類別。

Connection
ConsoleMessage

ConsoleMessage 物件由頁面透過 'console' 事件分派。

備註

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 ConsoleMessage 類別的子類別。

Coverage

Coverage 類別提供了收集頁面使用的 JavaScript 和 CSS 部分資訊的方法。

備註

若要以 Istanbul 可取用的形式輸出涵蓋範圍,請參閱puppeteer-to-istanbul

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 Coverage 類別的子類別。

CSSCoverage
DeviceRequestPrompt

裝置要求提示可讓您回應透過 WebBluetooth 等 API 要求裝置的頁面。

備註

DeviceRequestPrompt 實例是透過 Page.waitForDevicePrompt() 方法傳回的。

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 DeviceRequestPrompt 類別的子類別。

DeviceRequestPromptDevice

要求提示中的裝置。

備註

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 DeviceRequestPromptDevice 類別的子類別。

Dialog

Dialog 實例由 Page 透過 dialog 事件分派。

備註

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 Dialog 類別的子類別。

ElementHandle

ElementHandle 代表頁面內的 DOM 元素。

備註

可以使用 Page.$() 方法建立 ElementHandle。

import puppeteer from 'puppeteer';

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const hrefElement = await page.$('a');
await hrefElement.click();
// ...
})();

ElementHandle 會阻止 DOM 元素被垃圾回收,除非句柄被 處置。當它們的原始框架被導航時,ElementHandle 會自動處置。

ElementHandle 實例可以在 Page.$eval()Page.evaluate() 方法中用作引數。

如果您使用的是 TypeScript,ElementHandle 會接受一個泛型引數,表示句柄中包含的元素類型。例如,如果您有一個指向 <select> 元素的句柄,您可以將其類型設定為 ElementHandle<HTMLSelectElement>,您會獲得一些更好的類型檢查。

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 ElementHandle 類別的子類別。

EventEmitter

許多 Puppeteer 類別延伸的 EventEmitter 類別。

備註

這可讓您監聽 Puppeteer 類別觸發的事件並據此採取行動。因此,您主要會使用 onoff 來繫結和解除繫結事件監聽器。

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 EventEmitter 類別的子類別。

ExtensionTransport

(實驗性)如果 Puppeteer 在擴充功能中執行,則實驗性 ExtensionTransport 可讓您透過 chrome.debugger API 建立連線。由於 Chrome DevTools 通訊協定僅限於擴充功能,因此傳輸會實作遺失的命令和事件。

備註

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 ExtensionTransport 類別的子類別。

FileChooser

檔案選擇器可讓您回應要求檔案的頁面。

備註

FileChooser 實例是透過 Page.waitForFileChooser() 方法傳回的。

在瀏覽器中,一次只能開啟一個檔案選擇器。所有檔案選擇器都必須接受或取消。若不執行此動作,將會阻止後續檔案選擇器出現。

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 FileChooser 類別的子類別。

Frame

代表 DOM 框架。

若要理解框架,您可以將框架視為 <iframe> 元素。就像 iframe 一樣,框架可以巢狀,當 JavaScript 在框架中執行時,JavaScript 不會影響 JavaScript 執行所在環境框架內的框架。

備註

框架生命週期由三個事件控制,所有事件都在父 頁面上分派

此類別的建構函式標記為內部。第三方程式碼不應直接呼叫建構函式或建立延伸 Frame 類別的子類別。

HTTPRequest

代表頁面傳送的 HTTP 要求。

備註

每當頁面傳送要求時,例如為了網路資源,Puppeteer 的 page 會發出下列事件

  • request:在頁面發出要求時發出。

  • requestfinished - 在下載回應主體且要求完成時發出。

如果要求在某個時間點失敗,則會發出 requestfailed 事件,而不是 requestfinished 事件。

所有這些事件都會提供代表已發生要求的 HTTPRequest 實例

page.on('request', request => ...)

注意:HTTP 錯誤回應(例如 404 或 503)仍然是 HTTP 觀點的成功回應,因此要求會以 requestfinished 事件完成。

如果請求收到「重新導向」的回應,則請求會以 requestfinished 事件成功完成,並向重新導向的 URL 發出新的請求。

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 HTTPRequest 類別的子類別。

HTTPResponse

HTTPResponse 類別代表 Page 類別接收到的回應。

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 HTTPResponse 類別的子類別。

JSCoverage

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 JSCoverage 類別的子類別。

JSHandle

代表對 JavaScript 物件的參照。可以使用 Page.evaluateHandle() 建立實例。

除非刻意 處置,否則 Handle 會防止參照的 JavaScript 物件被垃圾回收。當關聯的框架被導航離開或父內容被銷毀時,JSHandle 會自動處置。

Handle 可以作為任何評估函式的引數,例如 Page.$eval()Page.evaluate()Page.evaluateHandle()。它們會解析為參照的物件。

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 JSHandle 類別的子類別。

Keyboard

Keyboard 提供用於管理虛擬鍵盤的 API。高階 API 為 Keyboard.type(),它接收原始字元,並在您的頁面上產生正確的 keydown、keypress/input 和 keyup 事件。

備註

為了更精細的控制,您可以使用 Keyboard.down()Keyboard.up()Keyboard.sendCharacter() 手動觸發事件,如同它們是從真實鍵盤產生的一樣。

在 macOS 上,像是 ⌘ A -> 全選的鍵盤快捷鍵無法運作。請參閱 #1313

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 Keyboard 類別的子類別。

Locator

Locator 描述了定位物件並對其執行動作的策略。如果動作失敗,因為物件尚未準備好執行動作,則會重試整個操作。會自動檢查成功執行動作的各種前提條件。

請參閱 https://puppeteer.dev.org.tw/guides/page-interactions#locators 以了解詳細資訊。

Mouse

Mouse 類別以主框架 CSS 像素為單位操作,相對於視口的左上角。

備註

每個 page 物件都有自己的 Mouse,可透過 Page.mouse 存取。

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 Mouse 類別的子類別。

Page

Page 提供與瀏覽器中的單一標籤頁或 擴充功能背景頁面 互動的方法。

注意

一個 Browser 實例可能有多個 Page 實例。

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 Page 類別的子類別。

ProtocolError

每當協定發生錯誤時,就會發出 ProtocolError。

Puppeteer

主要的 Puppeteer 類別。

重要:如果您在 Node 環境中使用 Puppeteer,當您匯入或要求 puppeteer 時,會取得 PuppeteerNode 的實例。該類別繼承自 Puppeteer,因此除了 PuppeteerNode 中定義的所有方法之外,還具有以下所有記錄的方法。

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 Puppeteer 類別的子類別。

PuppeteerError

所有 Puppeteer 特定錯誤的基礎類別

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 PuppeteerError 類別的子類別。

PuppeteerNode

使用 Node 特定行為來擷取和下載瀏覽器,擴展主要的 Puppeteer 類別。

如果您在 Node 環境中使用 Puppeteer,當您執行 require('puppeteer') (或對等的 ES import) 時,會取得此類別。

備註

最常用的方法是 launch,用於啟動並連線到新的瀏覽器實例。

請參閱 主要的 Puppeteer 類別,其中包含所有環境通用的方法,例如 Puppeteer.connect()

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 PuppeteerNode 類別的子類別。

ScreenRecorder

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 ScreenRecorder 類別的子類別。

SecurityDetails

SecurityDetails 類別代表透過安全連線接收的回應的安全詳細資訊。

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 SecurityDetails 類別的子類別。

Target

Target 代表 CDP 目標。在 CDP 中,目標是可以除錯的項目,例如框架、頁面或 Worker。

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 Target 類別的子類別。

TimeoutError

每當某些操作因逾時而終止時,就會發出 TimeoutError。

備註

範例操作包括 page.waitForSelectorpuppeteer.launch

TouchError

當嘗試移動或結束不存在的觸控時,會擲回 TouchError。

Touchscreen

Touchscreen 類別公開觸控螢幕事件。

備註

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 Touchscreen 類別的子類別。

Tracing

Tracing 類別公開追蹤稽核介面。

備註

您可以使用 tracing.starttracing.stop 來建立追蹤檔案,該檔案可以在 Chrome DevTools 或 timeline viewer 中開啟。

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 Tracing 類別的子類別。

UnsupportedOperation

如果目前使用的協定不支援某方法,Puppeteer 將會擲回此錯誤

WebWorker

此類別代表 WebWorker

備註

workercreatedworkerdestroyed 事件會在頁面物件上發出,以指示 Worker 的生命週期。

此類別的建構子標記為內部使用。第三方程式碼不應直接呼叫建構子或建立繼承自 WebWorker 類別的子類別。

列舉

列舉

描述

BrowserContextEvent
BrowserEvent

瀏覽器實例 可能發出的所有事件。

InterceptResolutionAction
LocatorEvent

Locator 實例可能發出的所有事件。

PageEvent

Page 實例可能發出的所有事件。

TargetType

函式

函式

描述

connect(options)
convertCookiesPartitionKeyFromPuppeteerToCdp(partitionKey)
defaultArgs(options)
launch(options)
trimCache()

介面

介面

描述

ActionOptions
AutofillData
BoundingBox
BoxModel
BrowserContextEvents
BrowserContextOptions
BrowserEvents
CDPSessionEvents
ChromeHeadlessShellSettings
ChromeSettings
ClickOptions
CommandOptions
CommonEventEmitter
Configuration

定義設定 Puppeteer 在安裝和執行期間行為的選項。

請參閱個別屬性以取得更多資訊。

ConnectionTransport
ConnectOptions

啟動任何瀏覽器或連線到現有瀏覽器實例時可以傳遞的通用瀏覽器選項。

ConsoleMessageLocation
ContinueRequestOverrides
Cookie

代表 Cookie 物件。

CookieData

用於在瀏覽器層級 Cookie API 中設定 Cookie 的 Cookie 參數物件。

CookieParam

用於在頁面層級 Cookie API 中設定 Cookie 的 Cookie 參數物件。

CookiePartitionKey

代表 Chrome 中的 Cookie 分割金鑰。

CoverageEntry

CoverageEntry 類別代表涵蓋率報告的一個項目。

Credentials
CSSCoverageOptions

CSS 涵蓋率的可設定選項集。

CustomQueryHandler
DebugInfo

(實驗性)

DeleteCookiesRequest
Device
DownloadBehavior
ElementScreenshotOptions
FirefoxSettings
FrameAddScriptTagOptions
FrameAddStyleTagOptions
FrameEvents
FrameWaitForFunctionOptions
GeolocationOptions
GoToOptions
InterceptResolutionState
InternalNetworkConditions
JSCoverageEntry

JavaScript 的 CoverageEntry 類別

JSCoverageOptions

JS 涵蓋率的可設定選項集。

KeyboardTypeOptions
KeyDownOptions
LaunchOptions

啟動任何瀏覽器時可以傳遞的通用啟動選項。

LocatorEvents
LocatorScrollOptions
MediaFeature

要模擬的媒體功能。

Metrics
MouseClickOptions
MouseMoveOptions
MouseOptions
MouseWheelOptions
Moveable
NetworkConditions
NewDocumentScriptEvaluation
Offset
PageEvents

表示頁面事件的回呼函式接收的物件。

請參閱 PageEvent 以取得關於事件及其發出時間的更多詳細資訊。

PDF邊界
PDF選項

透過 Page.pdf() 設定 PDF 產生的有效選項。

查詢選項
遠端位址
請求的回應

滿足請求所需的必要回應資料。

螢幕錄影選項

(實驗性)

螢幕截圖剪裁
螢幕截圖選項
序列化輔助功能樹節點

表示一個節點及其與輔助功能相關的屬性。

快照選項
支援的 WebDriver 功能

Puppeteer 本身未設定的 WebDriver BiDi 功能。

觸控控制點

TouchHandle 介面公開了操作已開始的觸控的方法

追蹤選項
視窗
等待網路閒置選項
等待選項
等待選擇器選項
等待目標選項
等待超時選項

命名空間

命名空間

描述

CDPSession事件

CDPSession 類別發射的事件。

變數

變數

描述

DEFAULT_INTERCEPT_RESOLUTION_PRIORITY

預設的合作請求攔截解析優先順序

可執行檔路徑
已知裝置

可與 Page.emulate() 一起使用的裝置清單。

滑鼠按鈕

有效滑鼠按鈕的列舉。

預定義網路條件

可與 Page.emulateNetworkConditions() 一起使用的預定義網路條件清單。

puppeteer

類型別名

類型別名

描述

動作結果
可等待
可等待迭代
可等待謂詞
等待定位器
瀏覽器連線選項

已棄用

使用 ConnectOptions

瀏覽器啟動參數選項

已棄用

使用 LaunchOptions

CDP事件
Chrome發佈通道
主控台訊息類型

主控台訊息支援的類型。

Cookie優先級

代表 Cookie 的「優先級」狀態: https://tools.ietf.org/html/draft-west-cookie-priority-00

Cookie SameSite

代表 Cookie 的 'SameSite' 狀態: https://tools.ietf.org/html/draft-west-first-party-cookies

Cookie來源方案

代表最初設定 Cookie 的來源的來源方案。值為「未設定」允許協定用戶端模擬該方案的舊版 Cookie 範圍。這是一個臨時功能,將來會移除。

下載策略
元素
錯誤代碼
評估函數
使用評估函數
具有萬用字元的事件
事件類型
實驗配置

定義 Puppeteer 的實驗選項。

請參閱個別屬性以取得更多資訊。

攤平處理
處理
處理
處理常式
內部參數
按鍵輸入

所有可以傳遞給接受使用者輸入的函數(例如 keyboard.press)的有效按鍵

按鍵按下選項
定位器點擊選項
小寫紙張格式
對應器
滑鼠按鈕
節點
紙張格式

列印 PDF 時所有有效的紙張格式類型。

備註

每個格式的大小如下

  • Letter:8.5 英吋 x 11 英吋

  • Legal:8.5 英吋 x 14 英吋

  • Tabloid:11 英吋 x 17 英吋

  • Ledger:17 英吋 x 11 英吋

  • A0:33.1102 英吋 x 46.811 英吋

  • A1:23.3858 英吋 x 33.1102 英吋

  • A2:16.5354 英吋 x 23.3858 英吋

  • A3:11.6929 英吋 x 16.5354 英吋

  • A4:8.2677 英吋 x 11.6929 英吋

  • A5:5.8268 英吋 x 8.2677 英吋

  • A6:4.1339 英吋 x 5.8268 英吋

權限
謂詞
協定生命週期事件
協定類型
Puppeteer啟動選項

已棄用

使用 LaunchOptions

Puppeteer生命週期事件
Puppeteer Node啟動選項

已棄用

使用 LaunchOptions

四邊形
資源類型

由渲染引擎感知的 HTTPRequests 的資源類型。

支援的瀏覽器

Puppeteer 支援的瀏覽器。

支援的WebDriver功能
目標篩選回呼
可見性選項

是否等待元素變成可見隱藏null表示禁用可見性檢查。