AutoScreenCut 是一个基于 Python + Playwright 框架开发的自动化网页截图测试工具。该工具能够自动访问指定网页,进行全页面滚动截图,并生成详细的测试报告。项目采用 Page Object Model (PO模式) 设计,具有良好的代码结构和可维护性。
- 🌐 多URL支持: 支持批量测试多个网页URL
- 📸 智能截图: 自动滚动页面进行分段截图,确保完整页面覆盖
- 🎯 A/B测试支持: 支持A/B类型标记,便于对比测试
- 🚫 弹窗处理: 自动识别并关闭常见弹窗(Cookie同意、订阅等)
- 📊 报告生成: 自动生成HTML格式的测试报告
- ⚙️ 配置化管理: 集中配置管理,易于维护和修改
- 🔄 PO模式设计: 采用Page Object Model,代码结构清晰
AutoScreenCut/
├── config/ # 配置文件目录
│ ├── __init__.py
│ └── config.py # 项目配置文件
├── pages/ # 页面对象目录
│ ├── __init__.py
│ └── base_page.py # 基础页面类
├── tests/ # 测试用例目录
│ ├── __init__.py
│ └── test_screenshots.py # 截图测试用例
├── utils/ # 工具类目录
│ ├── __init__.py
│ └── report_generator.py # 报告生成器
├── run_tests.py # 测试运行脚本
├── run_tests.bat # Windows批处理运行脚本
└── README.md # 项目说明文档
- Python 3.7+
- Node.js 16+ (Playwright依赖)
- Playwright
- pytest
git clone <项目地址>
cd AutoScreenCut# 使用指定的虚拟环境路径
D:\Cursor\UK0519\.venv\Scripts\activatepip install playwright pytest allure-pytest# 安装Playwright浏览器(需要Node.js环境)
playwright install chromium
# 或者安装所有浏览器
playwright install
## 配置说明
### 修改配置文件 `config/config.py`
```python
# 测试URL配置
URLS = [
"https://www.yunjiglobal.com/",
"https://store.dji.com/product/dji-mic-3",
# 添加更多需要测试的URL
]
# 截图路径配置
SCREENSHOTS_DIR = "D:\\AutoScreenCut"
- URLS: 需要测试的网页URL列表
- SCREENSHOTS_DIR: 截图保存目录
双击运行 run_tests.bat 文件,脚本会自动:
- 激活虚拟环境
- 运行测试用例
- 生成Allure报告
- 自动打开测试报告
python run_tests.pypytest tests/test_screenshots.py -v- 启动测试: 运行测试脚本
- 输入类型: 根据提示输入截图类型(A或B)
- 自动执行:
- 打开浏览器
- 访问配置的URL
- 最大化窗口
- 等待2秒加载
- 关闭弹窗
- 开始滚动截图
- 生成报告: 自动生成HTML测试报告
截图文件命名仅依据URL:
- 主页(无路径部分,如
https://example.com/):homepage_A/B_001.png - 其他页面:使用URL最低层级路径段(将
-转为_),如lowest_segment_A/B_001.png
例如:
https://www.yoursite.com/→homepage_A_001.pnghttps://www.yoursite.com/products/solar-generator→solar_generator_B_001.png
在 config/config.py 中修改 SCREENSHOTS_DIR 变量:
SCREENSHOTS_DIR = "你的截图保存路径"在 config/config.py 中的 URLS 列表添加新URL:
URLS = [
"https://www.yunjiglobal.com/",
"https://你的新URL.com",
]在 tests/test_screenshots.py 中修改等待时间:
base_page.wait(2) # 修改为需要的秒数- 浏览器启动失败
- 确保已安装Playwright浏览器:
playwright install - 检查虚拟环境是否正确激活
- 如果Playwright安装失败,可能是Node.js环境问题
-
Playwright安装失败
- 确保Node.js环境正常
- 尝试重新安装:
pip uninstall playwright && pip install playwright - 然后重新安装浏览器:
playwright install chromium
-
截图保存失败
- 检查截图目录是否存在写入权限
- 确保磁盘空间充足
-
弹窗关闭失败
- 某些特殊弹窗可能需要手动处理
- 可以在
base_page.py中添加新的选择器
- PO模式: 采用Page Object Model设计模式
- 配置分离: 配置与代码分离,便于维护
- 模块化设计: 功能模块化,易于扩展
如需添加新功能,可以:
- 在
pages/base_page.py中添加新的页面操作方法 - 在
tests/目录下添加新的测试用例 - 在
utils/目录下添加新的工具类
- 当前版本: 1.0.0
- Python版本: 3.7+
- Playwright版本: 最新稳定版
- pytest版本: 最新稳定版
欢迎提交Issue和Pull Request来改进这个项目。
本项目采用MIT许可证。
注意: 使用前请确保已正确配置虚拟环境和依赖包,并检查目标网站的访问权限。