I am struggling with this exact problem.
If you are ready to look beyond selenium, then chrome-remote-interface can substitute an account.
Here is the relevant code snippet
const CDP = require('chrome-remote-interface'); const fs = require('fs'); CDP(async (client) => { function setOffline(){ return Network.emulateNetworkConditions({offline: true, latency: 100, downloadThroughput: 750 * 1024 / 8, uploadThroughput: 250 * 1024 / 8}); } const {Page, Network} = client; try { await Page.enable(); await Network.enable(); await setOffline(); await Page.navigate({url: 'https://github.com'}); await Page.loadEventFired(); const {data} = await Page.captureScreenshot(); fs.writeFileSync('scrot.png', Buffer.from(data, 'base64')); } catch (err) { console.error(err); } finally { await client.close(); } }).on('error', (err) => { console.error(err); });
source share