Page 类
¥Page class
Page 提供了与浏览器中的单个选项卡或 扩展背景页 进行交互的方法。
¥Page provides methods to interact with a single tab or extension background page in the browser.
一个浏览器实例可能有多个页面实例。
¥One Browser instance might have multiple Page instances.
签名:
¥Signature:
export declare abstract class Page extends EventEmitter<PageEvents>
Extends: EventEmitter<PageEvents>
备注
¥Remarks
此类的构造函数被标记为内部构造函数。第三方代码不应直接调用构造函数或创建扩展 Page
类的子类。
¥The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Page
class.
示例 1
¥Example 1
此示例创建一个页面,将其导航到 URL,然后保存屏幕截图:
¥This example creates a page, navigates it to a URL, and then saves a screenshot:
import puppeteer from 'puppeteer';
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'screenshot.png'});
await browser.close();
})();
Page 类扩展自 Puppeteer 的 EventEmitter 类,并将触发 PageEvent 枚举中记录的各种事件。
¥The Page class extends from Puppeteer's EventEmitter class and will emit various events which are documented in the PageEvent enum.
示例 2
¥Example 2
此示例记录单页 load
事件的消息:
¥This example logs a message for a single page load
event:
page.once('load', () => console.log('Page loaded!'));
要取消订阅事件,请使用 EventEmitter.off() 方法:
¥To unsubscribe from events use the EventEmitter.off() method:
function logRequest(interceptedRequest) {
console.log('A request was made:', interceptedRequest.url());
}
page.on('request', logRequest);
// Sometime later...
page.off('request', logRequest);
属性
¥Properties
属性 | 修饰符 | 类型 | 描述 |
---|---|---|---|
accessibility |
| Accessibility 类提供了检查浏览器的辅助功能树的方法。可访问性树由 屏幕阅读器 或 switches 等辅助技术使用。 | |
coverage |
| Coverage 类提供了收集有关页面所使用的 JavaScript 和 CSS 部分的信息的方法。 | |
keyboard |
| Keyboard 提供了用于管理虚拟键盘的 api。高级 API 是 Keyboard.type(),它采用原始字符并在页面上生成正确的 keydown、keypress/input 和 keyup 事件。 | |
mouse |
| Mouse 类在相对于视口左上角的主框架 CSS 像素中运行。 | |
touchscreen |
| Touchscreen 类公开触摸屏事件。 | |
tracing |
| Tracing 类公开跟踪审计接口。 |
方法
¥Methods
方法 | 修饰符 | 描述 |
---|---|---|
在页面内运行 | ||
该方法在页面内运行 | ||
此方法在页面内运行 | ||
此方法在页面内运行 | ||
将 | ||
将 | ||
提供 | ||
将页面置于前面(激活选项卡)。 | ||
获取页面所属的浏览器。 | ||
获取页面所属的浏览器上下文。 | ||
此方法使用 | ||
页面的完整 HTML 内容,包括 DOCTYPE。 | ||
如果未指定 URL,则此方法返回当前页面 URL 的 cookie。如果指定了 URL,则仅返回这些 URL 的 cookie。 | ||
创建附加到页面的 Chrome Devtools 协议会话。 | ||
使用 | ||
模拟给定设备的指标和用户代理。 为了帮助模拟,Puppeteer 提供了可通过 KnownDevices 的已知设备列表。 | ||
启用 CPU 限制以模拟慢速 CPU。 | ||
模拟空闲状态。如果未设置参数,则清除空闲状态模拟。 | ||
这不会影响 WebSocket 和 WebRTC PeerConnections(请参阅 https://crbug.com/563644)。要将页面设置为离线,你可以使用 Page.setOfflineMode()。 通过导入 PredefinedNetworkConditions 可以使用预定义网络条件列表。 | ||
模拟页面上给定的视力缺陷。 | ||
评估页面上下文中的函数并返回结果。 如果传递给 | ||
添加将在以下场景之一调用的函数:
在创建文档之后但在运行其任何脚本之前调用该函数。这对于修改 JavaScript 环境很有用,例如 种子 | ||
该方法在页面的 如果 puppeteerFunction 返回 注意 通过 | ||
此方法获取带有 | ||
附加到页面的所有框架的数组。 | ||
最长时间(以毫秒为单位)。 | ||
此方法导航到历史记录中的上一页。 | ||
此方法导航到历史记录的下一页。 | ||
将页面导航到给定的 | ||
此方法使用 | ||
表示该页面已关闭。 | ||
如果拖动事件被拦截,则为 | ||
如果页面启用了 JavaScript,则为 | ||
如果 Service Worker 被绕过,则为 | ||
为提供的选择器创建一个定位器。有关详细信息和支持的操作,请参阅 定位器。 | ||
为提供的函数创建一个定位器。有关详细信息和支持的操作,请参阅 定位器。 | ||
页面的主框架。 | ||
包含指标作为键/值对的对象。 | ||
使用 | ||
此方法迭代 JavaScript 堆并查找具有给定原型的所有对象。 | ||
重新加载页面。 | ||
该方法从页面的 | ||
删除通过 Page.evaluateOnNewDocument 注入页面的脚本。 | ||
捕获此 page 的截屏视频。 | ||
捕获此 page 的屏幕截图。 | ||
选择所有提供的选项后,触发 | ||
切换绕过页面的内容安全策略。 | ||
切换忽略每个请求的 Service Worker。 | ||
根据启用状态切换忽略每个请求的缓存。默认情况下,缓存已启用。 | ||
设置页面的内容。 | ||
此设置将更改以下方法和相关快捷方式的默认最大导航时间: | ||
额外的 HTTP 标头将随页面发起的每个请求一起发送。 提示 所有 HTTP 标头名称均为小写。(HTTP 标头不区分大小写,因此这不会影响你的服务器代码。) 注意 page.setExtraHTTPHeaders 不保证传出请求中标头的顺序。 | ||
设置页面的地理位置。 | ||
将网络连接设置为离线。 它不会改变 Page.emulateNetworkConditions() 中使用的参数 | ||
激活请求拦截会启用 HTTPRequest.abort()、HTTPRequest.continue() 和 HTTPRequest.respond() 方法。这提供了修改页面发送的网络请求的能力。 一旦启用请求拦截,每个请求都会停止,除非继续、响应或中止;或者使用浏览器缓存完成。 有关详细信息,请参阅 请求拦截指南。 | ||
在单个浏览器中有多个页面的情况下,每个页面可以有自己的视口大小。 | ||
此方法使用 | ||
创建此页面的目标。 | ||
页面的标题 | ||
为文本中的每个字符发送 要按特殊键,例如 | ||
页面的 URL。 | ||
返回当前页面视口设置,而不检查实际页面视口。 这可以是使用先前的 Page.setViewport() 调用设置的视口,也可以是通过 BrowserConnectOptions.defaultViewport 设置的默认视口。 | ||
此方法通常与从 API(例如 WebBluetooth)触发设备请求的操作结合使用。 提醒 必须在发送设备请求之前调用此函数。它不会返回当前活动的设备提示。 | ||
此方法通常与触发文件选择的操作结合使用。 提醒 必须在启动文件选择器之前调用此函数。它不会返回当前活动的文件选择器。 | ||
等待匹配给定条件的帧出现。 | ||
等待提供的函数 | ||
等待页面导航到新 URL 或重新加载。当你运行将间接导致页面导航的代码时,它非常有用。 | ||
等待网络空闲。 | ||
等待 | ||
所有与该页面相关的专用 WebWorkers。 |