berstend / puppeteer-extra

💯 Teach puppeteer new tricks through plugins.
https://extra.community
MIT License
6.23k stars 732 forks source link

[Bug] Webdriver stealth fail with Playwright #764

Open b5414 opened 1 year ago

b5414 commented 1 year ago

Describe the bug

Code 1 and 2 allows to detect changed webdriver, code 3 not

Code Snippet

Code 1

const {chromium: playwright} = require('playwright-core');
const {addExtra} = require('playwright-extra');

const stealth = require('puppeteer-extra-plugin-stealth')();

const chromium = addExtra(playwright);
chromium.use(stealth);

//

(async()=>{
    const browser = await chromium.launch({headless: true});
    const page = await browser.newPage();

    await page.goto('https://bot.sannysoft.com', {waitUntil: 'networkidle'});
    await page.screenshot({path: 'last1.png', fullPage: true});

    await browser.close().then(()=>console.log('done'));
})();

Code 2

const {chromium: playwright} = require('playwright-core');
const awsChromium = require('@sparticuz/chromium');

const {addExtra} = require('playwright-extra');

const stealth = require('puppeteer-extra-plugin-stealth')();
const chromium = addExtra(playwright);
chromium.use(stealth);

//

(async()=>{
    const browser = await chromium.launch({
        args: awsChromium.args,
        // only for aws system:
        // executablePath: await awsChromium.executablePath,
        headless: true,
    });
    const page = await browser.newPage();

    await page.goto('https://bot.sannysoft.com', {waitUntil: 'networkidle'});
    await page.screenshot({path: 'last2.png', fullPage: true});

    await browser.close().then(()=>console.log('done'));
})();

Code 3

https://github.com/berstend/puppeteer-extra/issues/454#issuecomment-917437212

Versions

"dependencies": {
    "@sparticuz/chromium": "^109.0.0",
    "playwright": "^1.29.0",
    "playwright-core": "^1.29.0",
    "playwright-extra": "^4.3.5",
    "puppeteer-extra-plugin-stealth": "^2.11.1",
},