菜单
开源

cookies([urls])

返回按提供的 urls 过滤的 cookies 列表。如果未提供 urls,则返回所有 cookies。

参数类型描述
urls数组一个字符串数组,用于过滤 browser context 中的 cookies

返回值

类型描述
Promise<Array<Cookie>>一个 Promise,解析为 cookies 数组。

注意

Cookies 可以通过 BrowserContext.addCookies 添加。

示例

JavaScript
import { browser } from 'k6/browser';

export const options = {
  scenarios: {
    ui: {
      executor: 'shared-iterations',
      options: {
        browser: {
          type: 'chromium',
        },
      },
    },
  },
};

export default async function () {
  const context = await browser.newContext();
  const page = await context.newPage();

  try {
    // get cookies from the browser context
    let cookies = await context.cookies();
    console.log('initial cookies length:', cookies.length); // prints 0

    // let's add more cookies to filter by urls
    await context.addCookies([
      { name: 'foo', value: 'foovalue', sameSite: 'Strict', url: 'http://foo.com' },
      { name: 'bar', value: 'barvalue', sameSite: 'Lax', url: 'https://bar.com' },
      { name: 'baz', value: 'bazvalue', sameSite: 'Lax', url: 'https://baz.com' },
    ]);

    // get all cookies
    cookies = await context.cookies();
    console.log('filtered cookies length:', cookies.length); // prints 3

    // get cookies filtered by urls
    cookies = await context.cookies('http://foo.com', 'https://baz.com');
    console.log('filtered cookies length:', cookies.length); // prints 2

    // the first filtered cookie
    console.log("1st cookie's name :", cookies[0].name); // prints foo
    console.log("1st cookie's value:", cookies[0].value); // prints foovalue
    // the first filtered cookie
    console.log("2nd cookie's name :", cookies[1].name); // prints baz
    console.log("2nd cookie's value:", cookies[1].value); // prints bazvalue
  } finally {
    await page.close();
  }
}