()
| 14 | from src.environments.browser import Browser |
| 15 | |
| 16 | async def test_browser_startup(): |
| 17 | print("🔍 Starting browser startup test...") |
| 18 | |
| 19 | browser = Browser( |
| 20 | viewport={"width": 1280, "height": 720}, |
| 21 | window_size={"width": 1280, "height": 720}, |
| 22 | ) |
| 23 | |
| 24 | try: |
| 25 | print("📱 Calling browser.start()...") |
| 26 | start_time = time.time() |
| 27 | |
| 28 | # Add timeout to prevent infinite hang |
| 29 | await asyncio.wait_for(browser.start(), timeout=30.0) |
| 30 | |
| 31 | end_time = time.time() |
| 32 | print(f"✅ Browser started successfully in {end_time - start_time:.2f} seconds") |
| 33 | |
| 34 | # Try to get current page |
| 35 | print("📄 Getting current page...") |
| 36 | page = await browser.get_current_page() |
| 37 | print(f"✅ Current page: {page}") |
| 38 | |
| 39 | # Try simple navigation |
| 40 | print("🌐 Navigating to about:blank...") |
| 41 | await page.goto("https://www.google.com") |
| 42 | print("✅ Navigation successful") |
| 43 | |
| 44 | await asyncio.sleep(5) |
| 45 | |
| 46 | # Try to get browser state |
| 47 | print("📊 Getting browser state...") |
| 48 | state = await browser.get_browser_state_summary(include_screenshot=True) |
| 49 | print(f"✅ Browser state: URL={state.url}, Screenshot={'Yes' if state.screenshot else 'No'}") |
| 50 | print(f"Screenshot length: {len(state.screenshot)}") |
| 51 | |
| 52 | except asyncio.TimeoutError: |
| 53 | print("❌ Browser startup timed out after 30 seconds") |
| 54 | except Exception as e: |
| 55 | print(f"❌ Error during browser startup: {e}") |
| 56 | import traceback |
| 57 | traceback.print_exc() |
| 58 | finally: |
| 59 | print("🔄 Attempting to kill browser...") |
| 60 | try: |
| 61 | await browser.kill() |
| 62 | print("✅ Browser killed successfully") |
| 63 | except Exception as e: |
| 64 | print(f"⚠️ Error killing browser: {e}") |
| 65 | |
| 66 | if __name__ == "__main__": |
| 67 | # Set up signal handler for graceful shutdown |
no test coverage detected