check_playwright_installation
Verify Playwright browser automation driver installation status to ensure the YST KPI Daily Report Collector can automate data collection from KPI systems.
Instructions
检查 Playwright 浏览器驱动安装状态
Returns: 安装状态信息
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- server.py:230-298 (handler)The handler function decorated with @mcp.tool() that implements the check_playwright_installation tool. It verifies Playwright installation and Chromium browser drivers using subprocess checks and provides installation guidance if needed.@mcp.tool() async def check_playwright_installation() -> str: """ 检查 Playwright 浏览器驱动安装状态 Returns: 安装状态信息 """ import subprocess import sys try: logger.info("检查 Playwright 安装状态") # 检查 Playwright 模块 try: import playwright playwright_version = playwright.__version__ logger.info(f"Playwright 模块已安装,版本: {playwright_version}") except ImportError: return safe_text( "❌ Playwright 模块未安装\n\n" "请运行以下命令安装:\n" "pip install playwright\n" "playwright install chromium" ) # 检查浏览器驱动 result_text = safe_text(f"✓ Playwright 模块已安装 (v{playwright_version})\n\n") # 尝试检查浏览器安装 try: # 运行 playwright install --dry-run 检查浏览器状态 result = subprocess.run( [sys.executable, "-m", "playwright", "install", "--dry-run", "chromium"], capture_output=True, text=True, timeout=10 ) logger.debug(f"playwright install --dry-run 输出: {result.stdout}") if "is already installed" in result.stdout or "Skipping" in result.stdout: result_text += safe_text("✓ Chromium 浏览器驱动已安装\n\n") result_text += "系统状态:正常\n" result_text += "\n如果浏览器仍无法弹出,请检查:\n" result_text += "1. 防火墙/杀毒软件是否阻止\n" result_text += "2. 查看详细日志文件" else: result_text += safe_text("⚠ Chromium 浏览器驱动可能未安装\n\n") result_text += "请运行以下命令安装:\n" result_text += "playwright install chromium\n\n" result_text += "或在 Windows PowerShell 中:\n" result_text += "python -m playwright install chromium" except subprocess.TimeoutExpired: logger.warning("playwright install 命令超时") result_text += safe_text("⚠ 无法检查浏览器驱动状态(命令超时)\n\n") result_text += "建议手动运行:playwright install chromium" except Exception as e: logger.error(f"检查浏览器驱动失败: {e}") result_text += safe_text(f"⚠ 无法检查浏览器驱动: {str(e)}\n\n") result_text += "建议手动运行:playwright install chromium" return result_text except Exception as e: logger.exception("检查 Playwright 安装状态出错:") return safe_text(f"❌ 检查失败: {str(e)}")