BrowserProvider 接口
自定义浏览器提供程序实现的接口。允许用户为浏览器实现替代下载源。
⚠️ 重要:自定义提供程序不受 Puppeteer 官方支持。
通过实现此接口,您需对以下事项承担全部责任:
- 确保下载的二进制文件与 Puppeteer 的预期兼容 - 测试浏览器启动及其他功能能否与您的二进制文件正常配合 - 在 Puppeteer 或您的下载源发生变化时保持兼容性 - 如果混合使用不同来源,需保证跨平台版本一致性
Puppeteer 仅测试并保证 Chrome for Testing 二进制文件。
签名
export interface BrowserProvider
示例
class ElectronDownloader implements BrowserProvider {
supports(options: DownloadOptions): boolean {
return options.browser === Browser.CHROMEDRIVER;
}
getDownloadUrl(options: DownloadOptions): URL {
const platform = mapToPlatform(options.platform);
return new URL(
`v${options.buildId}/chromedriver-v${options.buildId}-${platform}.zip`,
'https://github.com/electron/electron/releases/download/',
);
}
getExecutablePath(options): string {
const ext = options.platform.includes('win') ? '.exe' : '';
return `chromedriver/chromedriver${ext}`;
}
}
方法
|
方法 |
说明 |
|---|---|
|
获取所请求浏览器的下载 URL。 buildId 可以是精确版本(例如“131.0.6778.109”)或别名(例如“latest”、“stable”)。自定义提供程序如果支持别名,应在内部处理版本解析。 如果 buildId 无法解析为有效版本,则返回 null。URL 不会经过验证——如果该 URL 不存在,下载会在之后失败。 对于简单的 URL 构造可以是同步的;如果需要版本解析或网络请求,则可以是异步的。 | |
|
获取已解压归档中可执行文件的相对路径。 | |
|
获取此提供程序的名称。用于错误消息和日志记录。 备注: 此方法用于代替 | |
|
检查此提供程序是否支持给定的浏览器/平台。用于在尝试下载前进行筛选。 对于快速检查可以是同步的;如果需要版本解析或网络请求,则可以是异步的。 |