瀏覽器管理
通常,您開始使用 Puppeteer 的方式是啟動 launch 或連接到瀏覽器。
啟動瀏覽器
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
// ...
關閉瀏覽器
要正常關閉瀏覽器,您可以使用 browser.close()
方法。
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await browser.close();
瀏覽器內容
如果您需要隔離自動化任務,請使用 BrowserContexts。Cookie 和本機儲存空間不會在瀏覽器內容之間共享。此外,您可以透過關閉內容來關閉內容中的所有頁面。
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const context = await browser.createBrowserContext();
const page1 = await context.newPage();
const page2 = await context.newPage();
await context.close();
權限
您也可以設定瀏覽器內容的權限。
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const context = browser.defaultBrowserContext();
await context.overridePermissions('https://html5demos.com', ['geolocation']);
連線至執行中的瀏覽器
如果您在 Puppeteer 之外啟動了瀏覽器,可以使用 connect
方法連線到它。通常,您可以從瀏覽器的輸出中取得 WebSocket 端點 URL。
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222/...',
});
const page = await browser.newPage();
browser.disconnect();
注意
與 browser.close()
不同,browser.disconnect()
不會關閉瀏覽器或關閉任何頁面。