Spaces:
Running
Running
| """ | |
| 🤖 Fagun Browser Automation Testing Agent - Hugging Face Spaces Entry Point | |
| ========================================== | |
| A powerful, intelligent browser automation tool that performs comprehensive website testing. | |
| Author: Mejbaur Bahar Fagun | |
| Role: Software Engineer in Test | |
| LinkedIn: https://www.linkedin.com/in/mejbaur/ | |
| """ | |
| import os | |
| import sys | |
| # Set UTF-8 encoding for Windows console | |
| if sys.platform.startswith('win'): | |
| import codecs | |
| sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach()) | |
| sys.stderr = codecs.getwriter('utf-8')(sys.stderr.detach()) | |
| # Disable telemetry before importing browser-use | |
| os.environ["BROWSER_USE_TELEMETRY"] = "false" | |
| os.environ["BROWSER_USE_DISABLE_TELEMETRY"] = "true" | |
| os.environ["BROWSER_USE_NO_TELEMETRY"] = "true" | |
| os.environ["DISABLE_TELEMETRY"] = "true" | |
| os.environ["NO_TELEMETRY"] = "true" | |
| # Configure logging | |
| import logging | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', | |
| handlers=[logging.StreamHandler(sys.stdout)] | |
| ) | |
| logging.getLogger("browser_use").setLevel(logging.WARNING) | |
| logging.getLogger("posthog").setLevel(logging.WARNING) | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| # Install Playwright browsers on first run | |
| import subprocess | |
| import sys | |
| def install_playwright_browsers(): | |
| """Install Playwright browsers if not already installed""" | |
| try: | |
| print("🔍 Checking Playwright browsers...") | |
| result = subprocess.run( | |
| [sys.executable, "-m", "playwright", "install", "chromium", "firefox"], | |
| capture_output=True, | |
| text=True, | |
| timeout=300 | |
| ) | |
| if result.returncode == 0: | |
| print("✅ Playwright browsers installed successfully") | |
| else: | |
| print(f"⚠️ Playwright install warning: {result.stderr}") | |
| except Exception as e: | |
| print(f"⚠️ Could not install Playwright browsers: {e}") | |
| # Install browsers on startup | |
| install_playwright_browsers() | |
| from src.webui.interface import create_ui | |
| # Create the Gradio interface with Hacker theme | |
| demo = create_ui(theme_name="Hacker") | |
| # Launch for Hugging Face Spaces | |
| if __name__ == '__main__': | |
| demo.queue().launch( | |
| server_name="0.0.0.0", | |
| server_port=7860, # Hugging Face Spaces default port | |
| share=False # No need for share link on HF Spaces | |
| ) | |