Install npm, Puppeteer and dependencies:
apt update -y && apt upgrade -y
apt install -y npm
apt install -y libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxi-dev libxtst-dev libnss3 libcups2 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libgtk-3-0 libgbm1
npm install -g n
n lts
hash -r
npm install puppeteer
Install Chrome without snap:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install ./google-chrome-stable_current_amd64.deb
Make a test file test.js:
const puppeteer = require('puppeteer');
const fs = require('fs');
async function run () {
const browser = await puppeteer.launch({
executablePath: '/usr/bin/google-chrome-stable',
args: ['--no-sandbox'],
defaultViewport: {width: 1920, height: 1080}
});
const page = await browser.newPage();
await page.goto('https://www.google.com');
await sleep(3000);
await page.screenshot({path: 'screenshot.png'});
const html = await page.content();
fs.writeFileSync('source.htm', html);
browser.close();
}
run();
function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
Test it:
node test.js