1.背景
使用puppeteer時會默認下載chrome,由於要訪問google,因此沒有使用代理情況下,無法成功下載。通常是設置好環境變量,跳過chrome下載,隨後單獨下載chrome,並在瀏覽器啓動項executablePath中指定文件路徑。
{
headless: true
args: []
executablePath : "chromePath"
}
官方給出的chromium離線下載安裝地址[1]如果不掛代理通常也無法打開。如果在linux/mac/windows平臺下,設置了chrome執行文件的路徑也可以正常啓動。因此只要在不同平臺下載chrome文件,隨後指定路徑,即可啓動不同版本的chrome。
2. MacOS系統下載並使用不同版本的chrome
在有界面環境下測試,可以選擇下載任意一個chrome版本。Mac系統下載的chrome文件通常是一個dmg文件,即mac下的磁盤鏡像文件。當下載完畢,雙擊chrome的dmg文件,將其掛載,隨後通過右鍵選擇將其打開,即可進入安裝文件目錄。
目錄中如下路徑即是配置在puppeteer中啓動chrome的路徑。
/Volumes/Google\ Chrome/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
3. Linux系統下載並使用不同版本的chrome
同macOs類似,在有界面環境下測試,linux下我們可以下載chrome的rpm包或deb包隨後將其打開獲取chrome即可。
rpm包下載完畢後,可以使用rpm2cpio[2]命令將其文件提取。
對於deb包,在mac下可以通過B1FreeArchiver這個工具打開,隨後解壓將文件提取。
文件提取完畢後,指定文件路徑,即可啓動不同版本的linux chrome。
4 下載特定版本的chromium
如果無界面環境下遇到錯誤,要提示我們下載特定版本,我們在啓動時可能會遇到啓動報錯。這時去下載對應版本即可。可以在國內的鏡像地址[3],找到對應的版本,然後下載使用即可。
Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r624492
參考
[1].chroium官方下載地址,https://download-chromium.appspot.com/.
[2].rpm2cpio的使用,https://stackoverflow.com/questions/18787375/how-do-i-extract-the-contents-of-an-rpm
[3].https://npm.taobao.org/mirrors/chromium-browser-snapshots/Linux_x64/