puppeteer-extra
puppeteer-extra copied to clipboard
[Bug] CloudFlare protection (https://nowsecure.nl) bypass only with {headless: false}, not with {headless: true}
Describe the bug
I'm trying to bypass CloudFlare protection, using for test https://nowsecure.nl website
My simple code works well when headless
option is set to false, but did not work when headless
is true
Command to execute
DEBUG=puppeteer-extra,puppeteer-extra-plugin:* node cloudflare_test.js
Code Snippet
const puppeteer = require('puppeteer-extra')
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())
const {executablePath} = require('puppeteer')
puppeteer.launch({
executablePath: executablePath(),
headless: false,
}).then(async browser => {
console.log('Running tests..')
const page = await browser.newPage()
await page.goto('https://nowsecure.nl')
await page.waitForTimeout(10000)
await page.screenshot({
path: 'stealth_test__headless-false.png',
fullPage: true
})
await browser.close()
console.log(`All done, check the screenshot`)
})
Screenshot with result: protection is passed
Debug info from console
puppeteer-extra-plugin:base:stealth Initialized. +0ms
puppeteer-extra plugin registered stealth +0ms
puppeteer-extra dependencies missing Set(16) {
'stealth/evasions/chrome.app',
'stealth/evasions/chrome.csi',
'stealth/evasions/chrome.loadTimes',
'stealth/evasions/chrome.runtime',
'stealth/evasions/defaultArgs',
'stealth/evasions/iframe.contentWindow',
'stealth/evasions/media.codecs',
'stealth/evasions/navigator.hardwareConcurrency',
'stealth/evasions/navigator.languages',
'stealth/evasions/navigator.permissions',
'stealth/evasions/navigator.plugins',
'stealth/evasions/navigator.webdriver',
'stealth/evasions/sourceurl',
'stealth/evasions/user-agent-override',
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions'
} +28ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.app Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.app +7ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.csi Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.csi +2ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.loadTimes Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.loadTimes +2ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.runtime Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.runtime +2ms
puppeteer-extra-plugin:base:stealth/evasions/defaultArgs Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/defaultArgs +2ms
puppeteer-extra-plugin:base:stealth/evasions/iframe.contentWindow Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/iframe.contentWindow +1ms
puppeteer-extra-plugin:base:stealth/evasions/media.codecs Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/media.codecs +2ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.hardwareConcurrency Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.hardwareConcurrency +2ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.languages Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.languages +2ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.permissions Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.permissions +2ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.plugins Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.plugins +5ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.webdriver Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.webdriver +2ms
puppeteer-extra-plugin:base:stealth/evasions/sourceurl Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/sourceurl +2ms
puppeteer-extra-plugin:base:stealth/evasions/user-agent-override Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/user-agent-override +1ms
puppeteer-extra dependencies missing Set(3) {
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions',
'user-preferences'
} +1ms
puppeteer-extra-plugin:base:stealth/evasions/webgl.vendor Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/webgl.vendor +2ms
puppeteer-extra-plugin:base:stealth/evasions/window.outerdimensions Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/window.outerdimensions +2ms
puppeteer-extra-plugin:base:user-preferences Initialized. +0ms
puppeteer-extra plugin registered user-preferences +4ms
puppeteer-extra dependencies missing Set(1) { 'user-data-dir' } +1ms
puppeteer-extra-plugin:base:user-data-dir Initialized. +0ms
puppeteer-extra-plugin:user-data-dir initialized {
deleteTemporary: true,
deleteExisting: false,
files: [],
folderPath: 'C:\\Users\\Acer\\AppData\\Local\\Temp',
folderPrefix: 'puppeteer_dev_profile-'
} +0ms
puppeteer-extra plugin registered user-data-dir +41ms
puppeteer-extra ignoring dependency 'stealth/evasions/webgl.vendor', which has been required already. +0ms
puppeteer-extra ignoring dependency 'stealth/evasions/window.outerdimensions', which has been required already. +0m
s
puppeteer-extra orderPlugins:before [
'stealth',
'stealth/evasions/chrome.app',
'stealth/evasions/chrome.csi',
'stealth/evasions/chrome.loadTimes',
'stealth/evasions/chrome.runtime',
'stealth/evasions/defaultArgs',
'stealth/evasions/iframe.contentWindow',
'stealth/evasions/media.codecs',
'stealth/evasions/navigator.hardwareConcurrency',
'stealth/evasions/navigator.languages',
'stealth/evasions/navigator.permissions',
'stealth/evasions/navigator.plugins',
'stealth/evasions/navigator.webdriver',
'stealth/evasions/sourceurl',
'stealth/evasions/user-agent-override',
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions',
'user-preferences',
'user-data-dir'
] +1ms
puppeteer-extra orderPlugins:after [
'stealth',
'stealth/evasions/chrome.app',
'stealth/evasions/chrome.csi',
'stealth/evasions/chrome.loadTimes',
'stealth/evasions/chrome.runtime',
'stealth/evasions/media.codecs',
'stealth/evasions/navigator.hardwareConcurrency',
'stealth/evasions/navigator.languages',
'stealth/evasions/navigator.permissions',
'stealth/evasions/navigator.plugins',
'stealth/evasions/navigator.webdriver',
'stealth/evasions/sourceurl',
'stealth/evasions/user-agent-override',
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions',
'stealth/evasions/defaultArgs',
'stealth/evasions/iframe.contentWindow',
'user-preferences',
'user-data-dir'
] +1ms
puppeteer-extra-plugin:user-preferences _userPrefsFromPlugins { intl: { accept_languages: 'en-US,en' } } +0ms
puppeteer-extra-plugin:user-data-dir created custom dir C:\Users\Acer\AppData\Local\Temp\puppeteer_dev_profile-8DQB
U2 +15ms
puppeteer-extra-plugin:user-data-dir Wrote file C:\Users\Acer\AppData\Local\Temp\puppeteer_dev_profile-8DQBU2\Defau
lt\Preferences +3ms
Running tests..
puppeteer-extra-plugin:stealth/evasions/user-agent-override onPageCreated - Will set these user agent options {
override: {
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Saf
ari/537.36',
platform: 'Win32',
userAgentMetadata: {
brands: [Array],
fullVersion: '109.0.0.0',
platform: 'Windows',
platformVersion: '10.0',
architecture: 'x86',
model: '',
mobile: false
}
},
opts: { userAgent: null, locale: 'en-US,en', maskLinux: true }
} +0ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +0ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +4ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +486ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +2ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1s
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +3ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +260ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +518ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +715ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +2ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +440ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +468ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +471ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +670ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +2ms
puppeteer-extra-plugin:user-data-dir onDisconnected +14s
puppeteer-extra-plugin:user-data-dir removeUserDataDir C:\Users\Acer\AppData\Local\Temp\puppeteer_dev_profile-8DQBU
2 +1ms
All done, check the screenshot
puppeteer-extra-plugin:user-data-dir null +565ms
Then, change headless
value from false
to true
const puppeteer = require('puppeteer-extra')
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())
const {executablePath} = require('puppeteer')
puppeteer.launch({
executablePath: executablePath(),
headless: true,
}).then(async browser => {
console.log('Running tests..')
const page = await browser.newPage()
await page.goto('https://nowsecure.nl')
await page.waitForTimeout(10000)
await page.screenshot({
path: 'stealth_test__headless-true.png',
fullPage: true
})
await browser.close()
console.log(`All done, check the screenshot`)
})
Screenshot with result: protection is NOT passed
Debug info from console
puppeteer-extra-plugin:base:stealth Initialized. +0ms
puppeteer-extra plugin registered stealth +0ms
puppeteer-extra dependencies missing Set(16) {
'stealth/evasions/chrome.app',
'stealth/evasions/chrome.csi',
'stealth/evasions/chrome.loadTimes',
'stealth/evasions/chrome.runtime',
'stealth/evasions/defaultArgs',
'stealth/evasions/iframe.contentWindow',
'stealth/evasions/media.codecs',
'stealth/evasions/navigator.hardwareConcurrency',
'stealth/evasions/navigator.languages',
'stealth/evasions/navigator.permissions',
'stealth/evasions/navigator.plugins',
'stealth/evasions/navigator.webdriver',
'stealth/evasions/sourceurl',
'stealth/evasions/user-agent-override',
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions'
} +27ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.app Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.app +6ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.csi Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.csi +2ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.loadTimes Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.loadTimes +2ms
puppeteer-extra-plugin:base:stealth/evasions/chrome.runtime Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/chrome.runtime +2ms
puppeteer-extra-plugin:base:stealth/evasions/defaultArgs Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/defaultArgs +2ms
puppeteer-extra-plugin:base:stealth/evasions/iframe.contentWindow Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/iframe.contentWindow +2ms
puppeteer-extra-plugin:base:stealth/evasions/media.codecs Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/media.codecs +2ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.hardwareConcurrency Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.hardwareConcurrency +1ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.languages Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.languages +2ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.permissions Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.permissions +1ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.plugins Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.plugins +6ms
puppeteer-extra-plugin:base:stealth/evasions/navigator.webdriver Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/navigator.webdriver +1ms
puppeteer-extra-plugin:base:stealth/evasions/sourceurl Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/sourceurl +2ms
puppeteer-extra-plugin:base:stealth/evasions/user-agent-override Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/user-agent-override +2ms
puppeteer-extra dependencies missing Set(3) {
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions',
'user-preferences'
} +1ms
puppeteer-extra-plugin:base:stealth/evasions/webgl.vendor Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/webgl.vendor +1ms
puppeteer-extra-plugin:base:stealth/evasions/window.outerdimensions Initialized. +0ms
puppeteer-extra plugin registered stealth/evasions/window.outerdimensions +2ms
puppeteer-extra-plugin:base:user-preferences Initialized. +0ms
puppeteer-extra plugin registered user-preferences +3ms
puppeteer-extra dependencies missing Set(1) { 'user-data-dir' } +0ms
puppeteer-extra-plugin:base:user-data-dir Initialized. +0ms
puppeteer-extra-plugin:user-data-dir initialized {
deleteTemporary: true,
deleteExisting: false,
files: [],
folderPath: 'C:\\Users\\Acer\\AppData\\Local\\Temp',
folderPrefix: 'puppeteer_dev_profile-'
} +0ms
puppeteer-extra plugin registered user-data-dir +42ms
puppeteer-extra ignoring dependency 'stealth/evasions/webgl.vendor', which has been required already. +1ms
puppeteer-extra ignoring dependency 'stealth/evasions/window.outerdimensions', which has been required already. +0m
s
puppeteer-extra orderPlugins:before [
'stealth',
'stealth/evasions/chrome.app',
'stealth/evasions/chrome.csi',
'stealth/evasions/chrome.loadTimes',
'stealth/evasions/chrome.runtime',
'stealth/evasions/defaultArgs',
'stealth/evasions/iframe.contentWindow',
'stealth/evasions/media.codecs',
'stealth/evasions/navigator.hardwareConcurrency',
'stealth/evasions/navigator.languages',
'stealth/evasions/navigator.permissions',
'stealth/evasions/navigator.plugins',
'stealth/evasions/navigator.webdriver',
'stealth/evasions/sourceurl',
'stealth/evasions/user-agent-override',
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions',
'user-preferences',
'user-data-dir'
] +1ms
puppeteer-extra orderPlugins:after [
'stealth',
'stealth/evasions/chrome.app',
'stealth/evasions/chrome.csi',
'stealth/evasions/chrome.loadTimes',
'stealth/evasions/chrome.runtime',
'stealth/evasions/media.codecs',
'stealth/evasions/navigator.hardwareConcurrency',
'stealth/evasions/navigator.languages',
'stealth/evasions/navigator.permissions',
'stealth/evasions/navigator.plugins',
'stealth/evasions/navigator.webdriver',
'stealth/evasions/sourceurl',
'stealth/evasions/user-agent-override',
'stealth/evasions/webgl.vendor',
'stealth/evasions/window.outerdimensions',
'stealth/evasions/defaultArgs',
'stealth/evasions/iframe.contentWindow',
'user-preferences',
'user-data-dir'
] +1ms
puppeteer-extra-plugin:user-preferences _userPrefsFromPlugins { intl: { accept_languages: 'en-US,en' } } +0ms
puppeteer-extra-plugin:user-data-dir created custom dir C:\Users\Acer\AppData\Local\Temp\puppeteer_dev_profile-PhBm
wl +17ms
puppeteer-extra-plugin:user-data-dir Wrote file C:\Users\Acer\AppData\Local\Temp\puppeteer_dev_profile-PhBmwl\Defau
lt\Preferences +6ms
Running tests..
puppeteer-extra-plugin:stealth/evasions/user-agent-override onPageCreated - Will set these user agent options {
override: {
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5412.0
Safari/537.36',
platform: 'Win32',
userAgentMetadata: {
brands: [Array],
fullVersion: '109.0.5412.0',
platform: 'Windows',
platformVersion: '10.0',
architecture: 'x86',
model: '',
mobile: false
},
acceptLanguage: 'en-US,en'
},
opts: { userAgent: null, locale: 'en-US,en', maskLinux: true }
} +0ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +0ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +457ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +2s
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +2ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +516ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +528ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +3s
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +1s
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +2ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +762ms
puppeteer-extra-plugin:stealth/evasions/sourceurl Stripping sourceURL { method: 'Runtime.evaluate' } +4ms
puppeteer-extra-plugin:user-data-dir onDisconnected +12s
puppeteer-extra-plugin:user-data-dir removeUserDataDir C:\Users\Acer\AppData\Local\Temp\puppeteer_dev_profile-PhBmw
l +2ms
All done, check the screenshot
puppeteer-extra-plugin:user-data-dir null +631ms
Only one strange thing which I see: with headless: false
user-agent is Chrome/109.0.0.0
, but with headless: true
user-agent is Chrome/109.0.5412.0
Versions
System:
OS: Windows 10 10.0.19044
CPU: (8) x64 Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz
Memory: 5.64 GB / 15.93 GB
Binaries:
Node: 14.17.0 - C:\Program Files\nodejs\node.EXE
npm: 6.14.3 - C:\Web\project_name\node_modules\.bin\npm.CMD
npmPackages:
puppeteer: ^19.5.2 => 19.5.2
puppeteer-extra: ^3.3.4 => 3.3.4
puppeteer-extra-plugin-stealth: ^2.11.1 => 2.11.1
I did modification of the my code snippet for use concrete UA in the user-agent-override
evasion:
const puppeteer = require('puppeteer-extra')
const {executablePath} = require('puppeteer')
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
const stealth = StealthPlugin()
stealth.enabledEvasions.delete('user-agent-override')
puppeteer.use(stealth)
const UserAgentOverride = require('puppeteer-extra-plugin-stealth/evasions/user-agent-override')
const ua = UserAgentOverride({
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
locale: 'en-US,en'
})
puppeteer.use(ua)
puppeteer.launch({
executablePath: executablePath(),
headless: true,
}).then(async browser => {
console.log('Running tests..')
const page = await browser.newPage()
await page.goto('https://nowsecure.nl')
await page.waitForTimeout(10000)
await page.screenshot({
path: 'stealth_test__headless-true.png',
fullPage: true
})
await browser.close()
console.log(`All done, check the screenshot`)
})
But results are the same :(
@berstend does you can to help me please?
@sngrl2 Hi! I'm facing the same issue. Did you solve it?
@overjoied unfortunately not, still waiting for advice from more experienced people
did you try to also put the ua in launch: args?
109 introduced new features for bot detection
See also
https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/1001
is possible to set the value on navigator.connection.rtt
? cause what I found so far is that headless: true
always give rtt 0
Any update on this?
@korablin Did you check headless: "new"
Reference: https://developer.chrome.com/articles/new-headless/
@aditodkar You solucion with headless: "new" worked perfectly in my case
const browser = await puppeteer.launch({
headless: "new",
});
@aditodkar Wow, headless: "new"
is working, thank you!