const puppeteer = require('C:/xampp/htdocs/vilmax/vilmax-cockpit/node_modules/puppeteer'); const CREDS = [ ['damianmalenta@gmail.com', 'Uz@J6ByUwHgAW(B#!6f)*pU4'], ['damianmalenta@gmail.com', 'Dammalq123123'], ['stefanmalenta', 'Dammalq123123'], ]; (async () => { const browser = await puppeteer.launch({ headless: false, args: ['--start-maximized', '--disable-blink-features=AutomationControlled'], ignoreDefaultArgs: ['--enable-automation'] }); const page = await browser.newPage(); await page.setViewport({ width: 1440, height: 900 }); await page.goto('https://bazarowy-swiat.pl:8443/', { waitUntil: 'domcontentloaded', timeout: 90000 }); // czekaj az wyzwanie minie i pojawi sie formularz logowania albo panel let ready = false; for (let i = 0; i < 24 && !ready; i++) { await new Promise(r => setTimeout(r, 5000)); try { ready = await page.evaluate(() => !!document.querySelector('input[name="login_name"], #login_name') || !!document.querySelector('#topNavigationLogout, [class*="logout"]') ); } catch (e) {} console.log('wait', i, 'ready:', ready); } await page.screenshot({ path: 'plesk_after_challenge.png' }); console.log('URL:', page.url()); // login for (const [u, p] of CREDS) { const hasForm = await page.evaluate(() => !!document.querySelector('input[name="login_name"], #login_name')).catch(() => false); if (!hasForm) break; await page.evaluate(() => { document.querySelector('input[name="login_name"], #login_name').value = ''; document.querySelector('input[name="passwd"], #passwd').value = ''; }); await page.type('input[name="login_name"], #login_name', u, { delay: 15 }); await page.type('input[name="passwd"], #passwd', p, { delay: 15 }); await page.evaluate(() => { const b = document.querySelector('button[type="submit"], input[type="submit"], #btn_send'); if (b) b.click(); else document.querySelector('form').submit(); }); await new Promise(r => setTimeout(r, 8000)); const st = await page.evaluate(() => ({ url: location.href, err: document.body.innerText.includes('Niepoprawna'), loggedIn: !!document.querySelector('#topNavigationLogout, [class*="logout"]'), })).catch(e => ({ err: e.message })); console.log('TRY', u, JSON.stringify(st)); if (st.loggedIn) { console.log('SUCCESS'); break; } if (st.err) { await page.goto('https://bazarowy-swiat.pl:8443/', { waitUntil: 'domcontentloaded' }).catch(() => {}); await new Promise(r => setTimeout(r, 4000)); } } await page.screenshot({ path: 'plesk_logged.png' }); // nie zamykaj — zapisz stan dla kolejnego kroku const cookies = await page.cookies(); require('fs').writeFileSync('plesk_cookies.json', JSON.stringify(cookies)); console.log('done, url:', page.url()); await browser.close(); })().catch(e => { console.error('ERR', e.message); });