const { chromium } = require('@playwright/test'); const path = require('path'); const fs = require('fs'); const SCREENSHOT_DIR = 'C:/Users/encep/.gemini/antigravity-cli/brain/3ab7ae82-5634-41d5-93a7-3c12c22503e2/screenshots'; const HTML_FILE = 'file:///' + path.resolve(__dirname, '../site/public/launch-readiness.html').replace(/\\/g, '/'); async function run() { if (!fs.existsSync(SCREENSHOT_DIR)) { fs.mkdirSync(SCREENSHOT_DIR, { recursive: true }); } const browser = await chromium.launch({ channel: 'msedge', headless: true }); const context = await browser.newContext({ viewport: { width: 1440, height: 900 } }); const page = await context.newPage(); console.log('Navigating to:', HTML_FILE); await page.goto(HTML_FILE); await page.waitForTimeout(1000); // 1. Hub 1: Free Tier Ads console.log('Capturing Hub 1: Free Tier Ads...'); await page.screenshot({ path: path.join(SCREENSHOT_DIR, '05_sandbox_free_tier_ads.png'), fullPage: false }); // Open Rewarded Video Modal const refillBtn = page.locator('button:has-text("Refill AI Quota")').first(); if (await refillBtn.isVisible()) { await refillBtn.click(); await page.waitForTimeout(1200); await page.screenshot({ path: path.join(SCREENSHOT_DIR, '06_sandbox_rewarded_video_modal.png'), fullPage: false }); await page.evaluate(() => { const el = document.getElementById('rewarded-ad-modal'); if (el) el.classList.add('hidden'); }); await page.waitForTimeout(400); } // 2. Hub 2: Payment & Checkout console.log('Capturing Hub 2: Multi-PG Checkout...'); await page.evaluate(() => switchTab('payment')); await page.waitForTimeout(600); await page.screenshot({ path: path.join(SCREENSHOT_DIR, '07_sandbox_payment_pricing_tiers.png'), fullPage: false }); // Click Subscribe Pro+ to show Checkout Modal const subProPlusBtn = page.locator('button:has-text("Subscribe Pro+")').first(); if (await subProPlusBtn.isVisible()) { await subProPlusBtn.click(); await page.waitForTimeout(600); await page.screenshot({ path: path.join(SCREENSHOT_DIR, '08_sandbox_checkout_gateway_modal.png'), fullPage: false }); await page.evaluate(() => { const el = document.getElementById('checkout-modal'); if (el) el.classList.add('hidden'); }); await page.waitForTimeout(400); } // 3. Hub 3: AI Customer Support (CA) console.log('Capturing Hub 3: AI Customer Support...'); await page.evaluate(() => switchTab('support')); await page.waitForTimeout(600); // Ask prompt await page.evaluate(() => { if (typeof askBotQuestion === 'function') { askBotQuestion('마이크 음성 인식이 안 돼요'); } }); await page.waitForTimeout(1000); await page.screenshot({ path: path.join(SCREENSHOT_DIR, '09_sandbox_ai_support_chat.png'), fullPage: false }); // 4. Hub 4: Admin Executive Command Desk console.log('Capturing Hub 4: Admin Executive Command Desk...'); await page.evaluate(() => switchTab('admin')); await page.waitForTimeout(600); await page.screenshot({ path: path.join(SCREENSHOT_DIR, '10_sandbox_admin_monetization_crm.png'), fullPage: false }); await browser.close(); console.log('All 6 Sandbox E2E screenshots successfully captured!'); } run().catch((err) => { console.error(err); process.exit(1); });