const puppeteer = require('C:/xampp/htdocs/vilmax/vilmax-cockpit/node_modules/puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: 'new' }); const page = await browser.newPage(); await page.setViewport({ width: 1440, height: 960 }); await page.goto('https://bazarowy-swiat.pl/produkt/naroznik-oskar-tilia-warianty-l-p/?v=' + Date.now(), { waitUntil: 'networkidle2', timeout: 60000 }); const btn = await page.evaluateHandle(() => [...document.querySelectorAll('button,a')].find(b => /akceptuj/i.test(b.textContent))); if (btn) { try { await btn.asElement().click(); } catch(e){} } await new Promise(r => setTimeout(r, 1000)); // wybierz wariant L + TILIA 39 (zielen butelkowa) await page.evaluate(() => { const s1 = document.querySelector('select[data-attribute_name="attribute_pa_strona"]'); [...s1.parentNode.querySelectorAll('.bs-swatch')].find(b => b.dataset.value === 'lewy').click(); }); await new Promise(r => setTimeout(r, 800)); await page.evaluate(() => { const s2 = document.querySelector('select[data-attribute_name="attribute_pa_kod-odcienia"]'); [...s2.parentNode.querySelectorAll('.bs-swatch')].find(b => b.dataset.value === '39').click(); }); await new Promise(r => setTimeout(r, 1500)); const st = await page.evaluate(() => ({ vid: document.querySelector('input[name="variation_id"]')?.value, img: document.querySelector('.woocommerce-product-gallery__image img')?.src, btn: !document.querySelector('.single_add_to_cart_button')?.disabled, })); console.log('selected:', JSON.stringify(st)); // dodaj do koszyka await page.evaluate(() => document.querySelector('.single_add_to_cart_button').click()); await new Promise(r => setTimeout(r, 3000)); const res = await page.evaluate(() => ({ notice: document.querySelector('.woocommerce-message')?.textContent.trim().slice(0, 200), url: location.href, })); console.log('cart result:', JSON.stringify(res)); await page.screenshot({ path: 'pdp_cart.png' }); await browser.close(); })().catch(e => { console.error('ERR', e.message); process.exit(1); });