今回はPuppeteerのBrowserFetcherクラスについて書いていきたいと思います。
BrowserFetcherクラス
BrowserFetcherはChromiumとFirefoxの異なるバージョンをダウンロードして、管理することができます。
BrowserFetcherはChromiumのバージョンを("533271"にたいな)指定するrevision string上で操作します。revision stringはomahaproxy.appspot.comから得ることができます。と、言いたいところなのですが、確認したところ、存在しないものが多いので、こちらの方を見てください。
Firefoxの場合、BrowserFetcherはFirefox Nightlyをダウンロードして、("75"にたいな)バージョン番号を操作します。Firefox Nightlyのホストはこちらを見てください。
canDownloadメソッド
revisionが利用可能かどうかを確かめるメソッド。
ホストからダウンロード可能であれば、true
を返してくれます。
例(createBrowserFetcherの設定によって結果が変わります):
constpuppeteer=require('puppeteer');asyncfunctioncheckRevision(revision){constbrowserFetcher=puppeteer.createBrowserFetcher();constisAvailable=awaitbrowserFetcher.canDownload(revision);if(isAvailable){console.info('This revision is available.');}else{console.info('This revision isn\'t available.');}}checkRevision('756066');// win64checkRevision('1000583');// This may release from now on but this isn't release at the moment.checkRevision('78.0a1');// If this product is Firefox, this result is true.
結果:
This revision is available.
This revision isn't available.
This revision isn't available.
downloadメソッド
ChromiumもしくはFirefox Nightlyをダウンロードするメソッド。
browserFetcher.download(revision[, progressCallback])
revision string ダウンロードするためのrevision
progressCallback function(number, number)
downloadedBytes number ダウンロードされたバイト数。
totalBytes number 合計ダウンロードバイト数。
簡単な例:
constpuppeteer=require('puppeteer');(async()=>{constbrowserFetcher=puppeteer.createBrowserFetcher();awaitbrowserFetcher.download('771731',(downloadedBytes,totalBytes)=>{// any code...});})();
hostメソッド
使用されているダウンロードホストを返すメソッドです。
localRevisionsメソッド
ディスク上でローカルに利用可能な(現在のproduct
の)すべてのrevisionのリストを返すメソッド。
platformメソッド
mac
、linux
、win32
、またはwin64
のいずれかを返すメソッド。
productメソッド
chrome
もしくはfirefox
のいずれかを返すメソッド。
removeメソッド
ダウンロードされたChromiumもしくはfiredfoxをrevisionを指定して削除するメソッド。
revisionInfoメソッド
revisionを指定してそのrevisionの情報を出すメソッド。
サンプル
ローカルにはrevision:389298と771731がダウンロード済み。
constpuppeteer=require('puppeteer');(async()=>{constbrowserFetcher=puppeteer.createBrowserFetcher();console.info('host: '+awaitbrowserFetcher.host());await(browserFetcher.localRevisions()).then(revisions=>console.info(revisions));console.info('platform: '+awaitbrowserFetcher.platform());console.info('product: '+awaitbrowserFetcher.product());constinfo1=awaitbrowserFetcher.revisionInfo('389298');constinfo2=awaitbrowserFetcher.revisionInfo('771731');constinfo3=awaitbrowserFetcher.revisionInfo('385798');console.info(info1);console.info(info2);console.info(info3);})();
結果:
[ '389298', '771731' ]
platform: win64
product: chrome
{ revision: '389298',
executablePath:
'path\\node_modules\\puppeteer\\.local-chromium\\win64-389298\\chrome-win32\\chrome.exe',
folderPath:
'path\\node_modules\\puppeteer\\.local-chromium\\win64-389298',
local: true,
url:
'https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/389298/chrome-win32.zip',
product: 'chrome' }
{ revision: '771731',
executablePath:
'path\\node_modules\\puppeteer\\.local-chromium\\win64-771731\\chrome-win\\chrome.exe',
folderPath:
'pathp\\node_modules\\puppeteer\\.local-chromium\\win64-771731',
local: true,
url:
'https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/771731/chrome-win.zip',
product: 'chrome' }
{ revision: '385798',
executablePath:
'path\\node_modules\\puppeteer\\.local-chromium\\win64-385798\\chrome-win32\\chrome.exe',
folderPath:
'path\\node_modules\\puppeteer\\.local-chromium\\win64-385798',
local: false,
url:
'https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/385798/chrome-win32.zip',
product: 'chrome' }
さいごに
次はBrowserクラスをやっていきたいと思います。