/** * Debug network monitoring setup */ import { Browser } from '@stock-bot/browser'; async function debugNetworkSetup() { console.log('šŸ› Debugging Network Monitoring Setup...'); try { await Browser.initialize({ headless: true, timeout: 10000, blockResources: false, // Ensure we don't block requests }); // Create page but don't navigate yet const { page, contextId } = await Browser.createPageWithProxy( '', 'http://doimvbnb-US-rotate:w5fpiwrb9895@p.webshare.io:80' ); let eventCount = 0; console.log('šŸ“” Setting up network event listener...'); page.onNetworkEvent(event => { eventCount++; console.log(`šŸ”” Event ${eventCount}: ${event.type} ${event.method} ${event.url}`); console.log(` Headers: ${Object.keys(event.headers || {}).length} headers`); if (event.responseData) { console.log(` Data: ${event.responseData.substring(0, 100)}...`); } }); console.log('🌐 Navigating to httpbin.org/headers...'); await page.goto('https://httpbin.org/headers'); console.log('ā³ Waiting for page load...'); await page.waitForLoadState('domcontentloaded'); console.log('ā³ Waiting additional time for network events...'); await new Promise(resolve => setTimeout(resolve, 3000)); console.log(`šŸ“Š Total events captured: ${eventCount}`); // Try to evaluate page content to see if it loaded const title = await page.title(); console.log(`šŸ“„ Page title: "${title}"`); const bodyText = await page.locator('body').textContent(); if (bodyText) { console.log(`šŸ“ Page content (first 200 chars): ${bodyText.substring(0, 200)}...`); } await Browser.closeContext(contextId); return eventCount > 0; } catch (error) { console.error('āŒ Debug test failed:', error); return false; } finally { await Browser.close(); } } async function testManualNetworkCall() { console.log('\nšŸ”§ Testing with manual fetch call...'); try { await Browser.initialize({ headless: true, timeout: 10000, blockResources: false, }); const { page, contextId } = await Browser.createPageWithProxy( 'https://www.interactivebrokers.com/webrest/search/product-types/summary', 'http://doimvbnb-US-rotate:w5fpiwrb9895@p.webshare.io:80' ); let eventCount = 0; page.onNetworkEvent(event => { eventCount++; console.log(`šŸ“” Manual test event ${eventCount}: ${event.type} ${event.method} ${event.url}`); if (event.responseData && event.url.includes('httpbin')) { console.log(` šŸ“Š Response: ${event.responseData}`); } }); // Navigate to a simple page first await page.goto('data:text/html,

Test Page

'); await page.waitForLoadState('domcontentloaded'); console.log('šŸš€ Making manual fetch call...'); // Make a fetch request from the page context const result = await page.evaluate(async () => { try { const response = await fetch('https://httpbin.org/json'); const data = await response.json(); return { success: true, data }; } catch (error) { return { success: false, error: error.message }; } }); console.log('šŸ“‹ Fetch result:', result); await new Promise(resolve => setTimeout(resolve, 2000)); console.log(`šŸ“Š Events from manual fetch: ${eventCount}`); await Browser.closeContext(contextId); return eventCount > 0; } catch (error) { console.error('āŒ Manual test failed:', error); return false; } finally { await Browser.close(); } } async function runDebugTests() { console.log('šŸš€ Network Monitoring Debug Tests\n'); const setupResult = await debugNetworkSetup(); const manualResult = await testManualNetworkCall(); console.log(`\nšŸ Results:`); console.log(` šŸ”§ Setup test: ${setupResult ? 'āœ… EVENTS CAPTURED' : 'āŒ NO EVENTS'}`); console.log(` šŸ“” Manual test: ${manualResult ? 'āœ… EVENTS CAPTURED' : 'āŒ NO EVENTS'}`); } if (import.meta.main) { runDebugTests().catch(console.error); } export { debugNetworkSetup, testManualNetworkCall };