MotorSignal-App/server/waze_relay/test_browser.js

46 lines
1.5 KiB
JavaScript

const puppeteer = require('puppeteer-core');
const EDGE_PATH = 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe';
async function run() {
console.log('Launching headless browser...');
const browser = await puppeteer.launch({
executablePath: EDGE_PATH,
headless: 'new',
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-blink-features=AutomationControlled']
});
const page = await browser.newPage();
console.log('Navigating to Waze Live Map...');
await page.goto('https://www.waze.com/live-map/directions?lat=37.7749&lng=-122.4194', {
waitUntil: 'networkidle2',
timeout: 20000
});
console.log('Evaluating in-page Waze alerts fetch...');
const inPageResult = await page.evaluate(async () => {
try {
const res = await fetch('https://www.waze.com/live-map/api/georss?top=37.82&bottom=37.72&left=-122.48&right=-122.36&env=na&types=alerts', {
headers: {
'Accept': 'application/json, text/plain, */*',
}
});
const data = await res.json();
return { status: res.status, alerts: data.alerts || [] };
} catch (e) {
return { error: e.message };
}
});
console.log('STATUS:', inPageResult.status);
console.log('ALERTS FOUND:', inPageResult.alerts ? inPageResult.alerts.length : inPageResult.error);
if (inPageResult.alerts && inPageResult.alerts.length > 0) {
console.log('First 3 alerts:', JSON.stringify(inPageResult.alerts.slice(0, 3), null, 2));
}
await browser.close();
}
run().catch(console.error);