繼承: EventEmitter
代表他會監聽事件
Browser是Puppeteer為了連接Chromium所創造的實例
launch的例子之前看過了
文件還有提供令一個例子
中斷連接和重新連接
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
// Store the endpoint to be able to reconnect to Chromium
const browserWSEndpoint = browser.wsEndpoint();
// Disconnect puppeteer from Chromium
browser.disconnect();
// Use the endpoint to reestablish a connection
const browser2 = await puppeteer.connect({browserWSEndpoint});
// Close Chromium
await browser2.close();
});
browser.browserContexts()
會回傳所有屬於此browser的browserContexts,用陣列
browser.close()
關閉Chromium和所有頁面。所有browser物件都會無法使用
browser.createIncognitoBrowserContext()
創造一個無痕的browser context(無痕模式視窗)。這不會和其他browser context分享cookies/cache
browser.defaultBrowserContext()
會回傳預設的browser context物件
browser.disconnect()
與Puppeteer中斷連線,但Chromium會繼續存在,但browser物件會失效
browser.newPage()
會回傳一個page物件(分頁),會新增在預設的browser context
browser.pages()
會回傳所有的pages,包含所有的browser context的page。但background_page不會再裏面,他可以再target.page()找到
browser.process()
會產生browser的程序。如果是被puppeteer.connect 則會回傳null
browser.target()
回傳與browser關聯的目標
browser.targets()
會回傳所有與browser關聯的目標,包含所有的browser context
browser.userAgent()
回傳browser的user agent
browser.version()
回傳browser版本
browser.wsEndpoint()
回傳websocket url,可以用於puppeteer.connect
繼承: EventEmitter
BrowserContexts提供方法去處理多個獨立的browser sessions。
當browser啟動時會預設一個BrowserContext。
browser.newPage()會建立一個新的page在預設的BrowserContext。
如果一個頁面被另一個頁面開啟,會歸屬到開啟的頁面的父BrowserContext。
browserContext.browser()
回傳browser context所屬的browser
browserContext.clearPermissionOverrides()
清除所有browser context被覆蓋的權限,像是通知、錄音等等的權限
文件有範例
browserContext.close()
關閉browserContext,browserContext所有目標也會被關閉
browserContext.isIncognito()
回傳boolean看browserContext是不是無痕模式
browserContext.newPage()
回傳所屬於此browserContext的新頁面
browserContext.overridePermissions(origin, permissions)
origin 要給權限的網站 e.g "https://example.com"
文件裡有詳細可給的權限
browserContext.pages()
回傳此browserContext的所有pages。不包含看不見的頁面。
與browser的browser.pages()同理
browserContext.targets()
會回傳所有與browser context關聯的目標
其實browser與browser context可以理解成,browser裡有一個預設的browser context
。
新的browser context像是無痕模式是需要被新增出來的。
但其他被新增出來的browser context是在browser的子類
架構可以理解為
下一篇是Page,哇 看到就想吐血