class: BrowserContext

未匹配的标注

BrowserContext 提供了一种操作多个独立浏览器会话的方法。启动浏览器时,它具有默认情况下使用单个 BrowserContext 。方法browser.newPage()在默认浏览器上下文中创建一个页面。

如果某个页面打开另一个页面,例如通过window.open调用,弹出窗口将属于父页面的浏览器上下文。

Puppeteer 允许使用browser.createIncognitoBrowserContext()方法创建;「 隐身 」浏览器上下文。「隐身」浏览器上下文不会将任何浏览数据写入磁盘。

// 创建一个新的隐身浏览器上下文
const context = await browser.createIncognitoBrowserContext();
// 在上下文中创建一个新页面。
const page = await context.newPage();
// ...对页面进行处理...
await page.goto('https://example.com');
// 不再需要上下文时,将其销毁。
await context.close();

event: 'targetchanged'

  • <[Target]>

当浏览器上下文中的目标的url更改时触发。

event: 'targetcreated'

event: 'targetdestroyed'

  • <[Target]>

当浏览器上下文中的目标被销毁(例如,页面关闭)时触发。

browserContext.browser()

  • returns: <[Browser]>

该浏览器上下文所属的浏览器。

browserContext.clearPermissionOverrides()

  • returns: <[Promise]>

清除浏览器上下文的所有权限替代。

const context = browser.defaultBrowserContext();
context.overridePermissions('https://example.com', ['clipboard-read']);
// 处理 ...
context.clearPermissionOverrides();

browserContext.close()

  • returns: <[Promise]>

关闭浏览器上下文。属于浏览器上下文的所有目标将被关闭。

注意仅隐身浏览器上下文可以关闭。

browserContext.isIncognito()

  • returns: <[boolean]>

返回 BrowserContext 是否隐身。
默认浏览器上下文是唯一的非隐身浏览器上下文。

注意,无法关闭默认浏览器上下文。

browserContext.newPage()

  • returns: <[Promise]<[Page]>>

在浏览器上下文中创建一个新页面。

browserContext.overridePermissions(origin, permissions)

  • origin <[string]> 授予权限的 [origin] ,例如「 example.com」。
  • permissions <[Array]<[string]>> 授予权限的数组。此处未列出的所有权限将被自动拒绝。权限可以是以下值之一:
    • 地理位置(geolocation)
    • midi
    • 系统专有的Midi (midi-sysex)
    • 通知(notifications)
    • 推送(push)
    • 摄像头(camera)
    • 话筒(microphone)
    • 后台同步(background-sync)
    • 环境光传感器(ambient-light-sensor)
    • 加速度计(accelerometer)
    • 陀螺仪(gyroscope)
    • 磁力仪(magnetometer)
    • 可访问性事件(accessibility-events)
    • 剪贴板读取(clipboard-read)
    • 剪贴板写入(clipboard-write)
    • 付款处理程序(payment-handler)
  • returns: <[Promise]>
const context = browser.defaultBrowserContext();
await context.overridePermissions('https://html5demos.com', ['geolocation']);

browserContext.pages()

  • returns: <[Promise]<[Array]<[Page]>>> 解析为所有打开的页面数组的 Promise 。不可见的页面,例如「 background_page」,将不在此列出,您可以使用 target.page() 找到它们。

浏览器上下文中所有页面数组。

browserContext.targets()

  • returns: <[Array]<[Target]>>

浏览器上下文中所有活动目标数组。

browserContext.waitForTarget(predicate[, options])

  • predicate <[function]([Target]):[boolean]> 为每个目标运行的函数
  • options <[Object]>
    • timeout <[number]> 最大等待时间,以毫秒为单位。传递0以禁用超时。默认为 30 秒。
  • returns: <[Promise]<[Target]>> 解析为找到的第一个与predicate函数匹配目标的 Promise 。

这将在此特定浏览器上下文中搜索目标。

查找通过window.open打开的页面的目标的示例:

await page.evaluate(() => window.open('https://www.example.com/'));
const newWindowTarget = await browserContext.waitForTarget(target =>                        target.url() === 'https://www.example.com/');

BrowserContext 提供了一种操作多个独立浏览器会话的方法。启动浏览器时,默认情况下使用的单个 BrowserContext 。browser.newPage() 方法在默认浏览器上下文中创建一个页面。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
贡献者:2
讨论数量: 0
发起讨论 只看当前版本


暂无话题~