Files
cannaiq/backend/diagnose-curaleaf-page.ts
2025-11-28 19:45:44 -07:00

72 lines
2.4 KiB
TypeScript

import { chromium } from 'playwright';
import { bypassAgeGatePlaywright } from './src/utils/age-gate-playwright';
async function diagnoseCuraleafPage() {
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',
viewport: { width: 1280, height: 720 }
});
const page = await context.newPage();
try {
console.log('Loading Curaleaf page...');
await page.goto('https://curaleaf.com/stores/curaleaf-dispensary-48th-street', {
waitUntil: 'domcontentloaded'
});
await page.waitForTimeout(2000);
console.log('Bypassing age gate...');
const bypassed = await bypassAgeGatePlaywright(page, 'Arizona');
if (!bypassed) {
console.log('❌ Failed to bypass age gate');
await browser.close();
return;
}
console.log('✅ Age gate bypassed!');
console.log(`Current URL: ${page.url()}`);
await page.waitForTimeout(5000);
// Check page title
const title = await page.title();
console.log(`\nPage title: ${title}`);
// Check for "menu" or "shop" links
const menuLinks = await page.locator('a:has-text("menu"), a:has-text("shop"), a:has-text("order")').count();
console.log(`\nMenu/Shop links found: ${menuLinks}`);
if (menuLinks > 0) {
const links = await page.locator('a:has-text("menu"), a:has-text("shop"), a:has-text("order")').all();
console.log('\nMenu links:');
for (const link of links.slice(0, 5)) {
const text = await link.textContent();
const href = await link.getAttribute('href');
console.log(` - ${text}: ${href}`);
}
}
// Check body text
const bodyText = await page.textContent('body') || '';
console.log(`\nBody text length: ${bodyText.length} characters`);
console.log(`Contains "menu": ${bodyText.toLowerCase().includes('menu')}`);
console.log(`Contains "shop": ${bodyText.toLowerCase().includes('shop')}`);
console.log(`Contains "product": ${bodyText.toLowerCase().includes('product')}`);
console.log(`Contains "dutchie": ${bodyText.toLowerCase().includes('dutchie')}`);
// Take screenshot
await page.screenshot({ path: '/tmp/curaleaf-diagnosed.png', fullPage: true });
console.log('\n📸 Screenshot saved: /tmp/curaleaf-diagnosed.png');
} catch (error) {
console.error('Error:', error);
} finally {
await browser.close();
}
}
diagnoseCuraleafPage();