Cookies
Puppeteer 提供方法,透過直接操作瀏覽器儲存來提前取得、設定和刪除 Cookie。如果您需要儲存和還原特定 Cookie 以進行測試,這會很有用。
取得 Cookie
以下範例示範如何取得瀏覽器預設 BrowserContext 中可用的 Cookie。
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
// In this example, we set a cookie using script evaluation.
// Cookies can be set by the page/server in various ways.
await page.evaluate(() => {
document.cookie = 'myCookie = MyCookieValue';
});
console.log(await browser.cookies()); // print available cookies.
設定 Cookie
Puppeteer 也可以直接將 Cookie 寫入瀏覽器的儲存中
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
// Sets two cookies for the localhost domain.
await browser.setCookie(
{
name: 'cookie1',
value: '1',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
{
name: 'cookie2',
value: '2',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
);
console.log(await browser.cookies()); // print available cookies.
刪除 Cookie
Browser.deleteCookie() 方法允許從儲存中刪除 Cookie。
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
// Deletes two cookies for the localhost domain.
await browser.deleteCookie(
{
name: 'cookie1',
value: '1',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
{
name: 'cookie2',
value: '2',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
);
console.log(await browser.cookies()); // print available cookies.
除了在預設瀏覽器上下文操作的 Browser
方法之外,相同的方法也可在 BrowserContext
類別中使用。