import { chromium } from 'playwright'; const TEST_URL = 'https://curaleaf.com/stores/curaleaf-dispensary-48th-street'; async function testCuraleafFinal() { console.log('\nšŸŽ­ Testing Curaleaf Age Gate Bypass - Final Version\n'); const browser = await chromium.launch({ headless: true }); const context = await browser.newContext({ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', viewport: { width: 1280, height: 720 } }); const page = await context.newPage(); try { console.log('šŸ“ Step 1: Navigating to Curaleaf...'); await page.goto(TEST_URL, { waitUntil: 'domcontentloaded' }); await page.waitForTimeout(2000); let currentUrl = page.url(); console.log(`Current URL: ${currentUrl}`); if (!currentUrl.includes('/age-gate')) { console.log('āœ… No age gate - page loaded directly!'); return; } console.log('\nšŸ“ Step 2: Clicking state dropdown...'); await page.locator('button#state').click(); await page.waitForTimeout(1000); console.log('šŸ“ Step 3: Selecting Arizona...'); await page.locator('[role="option"]').filter({ hasText: /^Arizona$/i }).click(); await page.waitForTimeout(2000); console.log('šŸ“ Step 4: Clicking "I\'m over 21" button...'); await page.locator('button').filter({ hasText: /I'm over 21/i }).click(); // Wait for navigation await page.waitForLoadState('domcontentloaded', { timeout: 15000 }); await page.waitForTimeout(3000); currentUrl = page.url(); console.log(`\nāœ… Final URL: ${currentUrl}`); if (currentUrl.includes('/age-gate')) { console.log('āŒ Still at age gate - bypass FAILED'); await page.screenshot({ path: '/tmp/curaleaf-final-failed.png' }); } else { console.log('āœ… SUCCESS! Age gate bypassed!'); await page.screenshot({ path: '/tmp/curaleaf-final-success.png' }); // Get and save the cookies const cookies = await context.cookies(); console.log('\nšŸŖ Successful cookies:'); cookies.forEach(c => { if (c.name.includes('age') || c.name.includes('state') || c.name.includes('verify')) { console.log(` ${c.name}: ${c.value}`); } }); // Check if we can see the menu const pageContent = await page.textContent('body'); const hasMenu = pageContent?.toLowerCase().includes('menu') || pageContent?.toLowerCase().includes('shop') || pageContent?.toLowerCase().includes('product'); console.log(`\nCan see menu/products: ${hasMenu ? 'āœ…' : 'āŒ'}`); } } catch (error) { console.error('āŒ Error:', error); } finally { await browser.close(); console.log('\nāœ… Test completed'); } } testCuraleafFinal();