#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
检查 Playwright 使用的是哪种浏览器
"""

from playwright.sync_api import sync_playwright

print("="*60)
print("  检查 Playwright 浏览器类型")
print("="*60)
print()

with sync_playwright() as p:
    # 测试 1: Playwright 自带的 Chromium（不带 channel 参数）
    print("[测试 1] Playwright 自带的 Chromium")
    print("  启动方式: p.chromium.launch()")
    try:
        browser1 = p.chromium.launch(headless=False)
        page1 = browser1.new_page()
        page1.goto("https://www.whatsmybrowser.org/")

        user_agent1 = page1.evaluate("() => navigator.userAgent")
        print(f"  User Agent: {user_agent1}")

        if "Chrome/" in user_agent1:
            # 检查是否有特定的 Playwright 标识
            if "Headless" in user_agent1:
                print("  类型: Playwright Chromium (Headless)")
            else:
                print("  类型: Playwright Chromium (有窗口)")
            print("  特点: 版本号通常不是最新版 Chrome")
        else:
            print(f"  类型: 未知")

        print()
        print("  请观察浏览器窗口：")
        print("  - 如果显示 'Chrome' 并且是普通的窗口 -> 系统 Chrome")
        print("  - 如果没有 'Chrome' 标识或看起来不一样 -> Playwright Chromium")
        print()
        print("  5 秒后自动关闭...")
        import time
        time.sleep(5)
        browser1.close()
        print("  [OK] 已关闭")
    except Exception as e:
        print(f"  [ERROR] 启动失败: {e}")
        print("  这通常意味着需要安装 Playwright 浏览器")
        print("  解决方法: playwright install chromium")

    print()
    print("-"*60)
    print()

    # 测试 2: 系统 Chrome
    print("[测试 2] 系统 Chrome")
    print("  启动方式: p.chromium.launch(channel='chrome')")
    try:
        browser2 = p.chromium.launch(headless=False, channel="chrome")
        page2 = browser2.new_page()
        page2.goto("https://www.whatsmybrowser.org/")

        user_agent2 = page2.evaluate("() => navigator.userAgent")
        print(f"  User Agent: {user_agent2}")

        if "Chrome/" in user_agent2:
            print("  类型: 系统 Chrome")
            print("  特点: 使用你电脑上安装的 Chrome")

        print()
        print("  请观察浏览器窗口：")
        print("  - 应该是你熟悉的 Chrome 窗口")
        print("  - 有你的扩展程序、书签栏等")
        print()
        print("  5 秒后自动关闭...")
        time.sleep(5)
        browser2.close()
        print("  [OK] 已关闭")
    except Exception as e:
        print(f"  [ERROR] 启动失败: {e}")
        print("  这可能意味着系统没有安装 Chrome")

    print()
    print("-"*60)
    print()

    # 测试 3: 系统 Edge（如果有）
    print("[测试 3] 系统 Edge")
    print("  启动方式: p.chromium.launch(channel='msedge')")
    try:
        browser3 = p.chromium.launch(headless=False, channel="msedge")
        page3 = browser3.new_page()
        page3.goto("https://www.whatsmybrowser.org/")

        user_agent3 = page3.evaluate("() => navigator.userAgent")
        print(f"  User Agent: {user_agent3}")

        if "Edg/" in user_agent3:
            print("  类型: 系统 Microsoft Edge")
            print("  特点: 使用你电脑上安装的 Edge")

        print()
        print("  请观察浏览器窗口：")
        print("  - 应该是 Edge 窗口（蓝色 'e' 图标）")
        print()
        print("  5 秒后自动关闭...")
        time.sleep(5)
        browser3.close()
        print("  [OK] 已关闭")
    except Exception as e:
        print(f"  [ERROR] 启动失败: {e}")
        print("  这可能意味着系统没有安装 Edge")

print()
print("="*60)
print("  总结")
print("="*60)
print()
print("如何判断：")
print("  1. Playwright 自带的 Chromium:")
print("     - 代码: p.chromium.launch()")
print("     - 需要: playwright install chromium")
print("     - 优点: 完全干净，没有缓存、扩展程序")
print()
print("  2. 系统 Chrome:")
print("     - 代码: p.chromium.launch(channel='chrome')")
print("     - 需要: 系统安装了 Chrome")
print("     - 缺点: 可能有缓存、扩展程序干扰")
print()
print("  3. 系统 Edge:")
print("     - 代码: p.chromium.launch(channel='msedge')")
print("     - 需要: 系统安装了 Edge")
print("     - 缺点: 可能有缓存干扰")
print()
print("推荐：")
print("  首选 Playwright 自带的 Chromium（测试 1）")
print("  如果测试 1 失败，再考虑使用系统 Chrome 或 Edge")
print()
print("按回车退出...")
input()
