菜单
开源

newContext([options])

创建并返回一个新的 BrowserContext,如果 Browser 尚未初始化,则创建并返回一个。如果已初始化,则抛出错误。

注意

BrowserBrowserContext 之间存在一对一映射,这意味着您无法同时运行多个 BrowserContext。由于此限制,如果已存在一个,则必须先 关闭 它,然后才能创建新的。

参数类型默认值描述
optionsobjectnull
options.bypassCSPbooleanfalse是否绕过页面的内容安全策略 (Content-Security-Policy)。
options.colorSchemestring'light'是否通过模拟“prefers-colors-scheme”媒体特性以深色或浅色模式显示页面。它可以是 'light''dark''no-preference' 之一。
options.deviceScaleFactor number1设置物理像素到 CSS 像素的分辨率比率,即如果设置为高于 1,则在高像素密度屏幕上图像会更清晰。请参阅下面的示例
options.extraHTTPHeadersobjectnull包含随每个请求发送的附加 HTTP 头部,其中键是 HTTP 头部名称,值是 HTTP 头部值。
options.geolocation objectnull设置用户的地理位置。
options.geolocation.latitudenumber0纬度应在 -9090 之间。
options.geolocation.longitudenumber0经度应在 -180180 之间。
options.geolocation.accuracynumber0精度应为非负数。默认为 0
options.hasTouch booleanfalse是否模拟具有触摸事件的设备。
options.httpCredentialsobjectnull使用基本认证设置 HTTP 认证的凭据。
options.httpCredentials.usernamestring''用于传递给 Web 浏览器的基本 HTTP 认证用户名。
options.httpCredentials.passwordstring''用于传递给 Web 浏览器的基本 HTTP 认证密码。
options.ignoreHTTPSErrorsbooleanfalse是否忽略可能由无效证书引起的 HTTPS 错误。
options.isMobilebooleanfalse是否模拟移动设备。
options.javaScriptEnabledbooleantrue是否激活上下文的 JavaScript 支持。
options.localestringsystem指定用户的区域设置,例如 'en-US''tr-TR' 等。
options.offlinebooleanfalse是否模拟离线网络。
options.permissionsArraynull授予上下文页面权限。请参阅 browserContext.grantPermissions() 查看选项。
options.reducedMotionstring'no-preference'通过模拟“prefers-reduced-motion”媒体特性最小化运动量。它可以是 'reduce''no-preference' 之一。请参阅 page.emulateMedia() 查看选项。
options.screenobject{'width': 1280, 'height': 720}为上下文中的所有页面设置窗口屏幕大小。它只能在设置了 viewport 时使用。
options.screen.widthnumber1280页面宽度,单位像素。
options.screen.heightnumber720页面高度,单位像素。
options.timezoneIDstringsystem更改上下文的时区。请参阅 ICU 的 metaZones.txt 查看支持的时区 ID 列表。
options.userAgentstringbrowser指定在上下文中使用何种用户代理。
options.viewportobject{'width': 1280, 'height': 720}为上下文中的所有页面设置 viewport 大小。设置为 null 将禁用默认 viewport。
options.viewport.widthnumber1280页面宽度,单位像素。
options.viewport.heightnumber720页面高度,单位像素。

返回值

类型描述
Promise<BrowserContext>一个 Promise,解析后会得到一个 BrowserContext 对象。

deviceScaleFactor 示例

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

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

export default async function () {
  const context = await browser.newContext({
    viewport: {
      width: 375,
      height: 812,
    },
    deviceScaleFactor: 3,
  });
  const page = await context.newPage();

  try {
    await page.goto('https://test.k6.io/');
  } finally {
    await page.close();
  }
}