# UI_Tools **Repository Path**: jiapengchu/ui_-tools ## Basic Information - **Project Name**: UI_Tools - **Description**: ui自动化 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-03 - **Last Updated**: 2025-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UI自动化管理工具 基于Python Playwright和PyQt6的界面自动化管理工具,提供录制、编辑、执行和管理Web自动化脚本的完整解决方案。 ## ✨ 特性 ### 🎯 核心功能 - **录制功能**: 支持Chromium、Firefox、WebKit浏览器的自动化操作录制 - **脚本编辑**: 可视化脚本编辑器,支持Python语法高亮 - **断言管理**: 方便添加和管理各种类型的断言 - **脚本执行**: 支持脚本执行和结果查看 - **项目管理**: 完整的脚本项目管理功能 ### 🎨 界面特色 - **现代化界面**: 基于PyQt6的美观界面 - **多标签页设计**: 录制、编辑、执行结果分离显示 - **实时日志**: 详细的操作日志和执行输出 - **主题支持**: 支持明暗主题切换 ### 🔧 高级功能 - **智能选择器**: 自动生成优化的元素选择器 - **批量执行**: 支持多脚本批量执行 - **结果统计**: 执行成功率和性能统计 - **导入导出**: 脚本的导入导出功能 ## 🚀 快速开始 ### 环境要求 - Python 3.8+ - 支持的操作系统: Windows, macOS, Linux ### 安装 1. **克隆项目** ```bash git clone https://github.com/example/ui-autotools.git cd ui-autotools ``` 2. **安装依赖** ```bash pip install -r requirements.txt playwright install ``` 3. **初始化配置** ```bash cp .env.example .env # 编辑 .env 文件配置您的环境变量 ``` 4. **运行应用** ```bash python main.py ``` ### 使用 Makefile (推荐) ```bash # 初始化开发环境 make setup # 运行应用 make run # 运行测试 make test # 查看所有可用命令 make help ``` ## 📚 使用指南 ### 基本工作流程 1. **新建项目**: 点击"新建脚本"创建自动化项目 2. **录制操作**: 在录制标签页中输入目标网址,开始录制 3. **编辑脚本**: 在脚本编辑器中查看和修改生成的代码 4. **添加断言**: 使用断言管理功能添加验证逻辑 5. **执行测试**: 运行脚本并查看执行结果 ### 录制功能 支持录制以下操作: - 页面导航 - 点击操作 - 文本输入 - 键盘操作 - 鼠标悬停 - 滚动操作 ### 断言类型 - `text_equals`: 文本完全匹配 - `text_contains`: 文本包含检查 - `element_visible`: 元素可见性检查 - `element_hidden`: 元素隐藏检查 - `url_equals`: URL完全匹配 - `url_contains`: URL包含检查 ### 示例脚本 ```python import asyncio from playwright.async_api import async_playwright async def test_login(): \"\"\"登录功能测试脚本\"\"\" async with async_playwright() as p: browser = await p.chromium.launch(headless=False) context = await browser.new_context() page = await context.new_page() try: # 导航到登录页面 await page.goto('https://example.com/login') await page.wait_for_timeout(500) # 输入用户名 await page.fill('#username', 'testuser') await page.wait_for_timeout(500) # 输入密码 await page.fill('#password', 'password123') await page.wait_for_timeout(500) # 点击登录按钮 await page.click('#login-button') await page.wait_for_timeout(500) # 断言: 检查登录成功 welcome_text = await page.text_content('#welcome-message') assert '欢迎' in welcome_text, f'登录失败,未找到欢迎信息' except Exception as e: print(f'脚本执行失败: {e}') raise finally: await browser.close() if __name__ == '__main__': asyncio.run(test_login()) ``` ## 🛠️ 开发指南 ### 项目结构 ``` ui-autotools/ ├── backend/ # 后端模块 │ ├── recorder.py # 录制器 │ ├── script_generator.py # 脚本生成器 │ ├── executor.py # 执行器 │ ├── script_manager.py # 脚本管理器 │ └── models.py # 数据模型 ├── frontend/ # 前端界面 │ ├── main_window.py # 主窗口 │ └── widgets/ # UI组件 ├── config/ # 配置模块 │ └── settings.py # 配置管理 ├── utils/ # 工具模块 │ └── helpers.py # 辅助函数 ├── scripts/ # 脚本存储目录 ├── tests/ # 测试文件 └── main.py # 应用入口 ``` ### 参与开发 1. **Fork 项目** 2. **创建功能分支** (`git checkout -b feature/amazing-feature`) 3. **提交更改** (`git commit -m 'Add amazing feature'`) 4. **推送分支** (`git push origin feature/amazing-feature`) 5. **提交 Pull Request** ### 代码规范 ```bash # 格式化代码 make format # 代码检查 make lint # 运行测试 make test # 运行所有检查 make check ``` ## 📋 配置选项 ### 环境变量 | 变量名 | 默认值 | 说明 | |--------|--------|------| | `APP_NAME` | UI自动化管理工具 | 应用名称 | | `BROWSER_TYPE` | chromium | 默认浏览器类型 | | `HEADLESS` | false | 是否无头模式 | | `TIMEOUT` | 30000 | 默认超时时间(ms) | | `WINDOW_WIDTH` | 1200 | 窗口宽度 | | `WINDOW_HEIGHT` | 800 | 窗口高度 | | `THEME` | light | 界面主题 | | `LOG_LEVEL` | INFO | 日志级别 | ### 应用配置 详细配置选项请参考 `config/settings.py` 文件。 ## 🤝 贡献 欢迎贡献代码!请查看 [贡献指南](CONTRIBUTING.md) 了解详细信息。 ### 贡献者 感谢所有贡献者的付出! ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详细信息。 ## 🆘 支持 ### 常见问题 **Q: 录制时浏览器无法启动?** A: 请确保已安装浏览器驱动:`playwright install` **Q: 脚本执行失败?** A: 检查网络连接和目标页面是否可访问,确认元素选择器是否正确。 **Q: 如何自定义脚本模板?** A: 修改 `backend/script_generator.py` 中的模板代码。 ### 获取帮助 - 📧 邮箱: contact@example.com - 🐛 问题反馈: [GitHub Issues](https://github.com/example/ui-autotools/issues) - 💬 讨论区: [GitHub Discussions](https://github.com/example/ui-autotools/discussions) ## 🎯 路线图 - [ ] 支持移动端自动化 - [ ] 添加API测试功能 - [ ] 集成CI/CD工具 - [ ] 支持分布式执行 - [ ] 添加可视化报告 - [ ] 支持更多浏览器 ## 📊 统计 ![GitHub stars](https://img.shields.io/github/stars/example/ui-autotools?style=social) ![GitHub forks](https://img.shields.io/github/forks/example/ui-autotools?style=social) ![GitHub issues](https://img.shields.io/github/issues/example/ui-autotools) ![GitHub license](https://img.shields.io/github/license/example/ui-autotools) --- ⭐ 如果这个项目对您有帮助,请给我们一个Star!