# selenium-demo
**Repository Path**: joyamon/selenium-demo
## Basic Information
- **Project Name**: selenium-demo
- **Description**: 介绍了Selenium WebDriver的各个方面,并提供了一个完整的UI自动化测试Demo。这个Demo框架具有良好的扩展性,可以根据需要添加更多的页面类和测试用例,构建更复杂的自动化测试套件。通过这个Demo,你可以学习到
如何搭建Selenium测试框架,Page Object Model设计模式的应用,等待机制和元素定位的最佳实践,如何组织测试用例和生成报告,如何处理常见的自动化测试问题
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-02
- **Last Updated**: 2025-12-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: UI自动化, Selenium
## README
# selenium-demo
### 1.1 selenium-demo
详细介绍了Selenium WebDriver的各个方面,并提供了一个完整的UI自动化测试Demo。这个Demo框架具有良好的扩展性,你可以根据需要添加更多的页面类和测试用例,构建更复杂的自动化测试套件。通过这个Demo,你可以学习到:
- 如何搭建Selenium测试框架
- Page Object Model设计模式的应用
- 等待机制和元素定位的最佳实践
- 如何组织测试用例和生成报告
- 如何处理常见的自动化测试问题
### 1.2 Selenium组件
- **Selenium IDE**:浏览器扩展,用于录制和回放测试脚本
- **Selenium WebDriver**:核心组件,提供API来控制浏览器
- **Selenium Grid**:用于并行执行测试,支持跨浏览器和跨平台测试
### 2.1 Python环境安装
```bash
# 安装Python
# 从官网下载安装:https://www.python.org/
# 安装Selenium
pip install selenium
# 安装浏览器驱动(以Chrome为例)
# 1. 查看Chrome版本:chrome://settings/help
# 2. 下载对应版本的ChromeDriver:https://chromedriver.chromium.org/
# 3. 将chromedriver.exe放到Python安装目录或添加到系统PATH
# 4. 建议使用 webdriver-manager,可以自动管理浏览器驱动,无需手动下载
```
#### 项目结构
```bash
selenium-demo/
├── config/
│ └── config.py # 配置文件
├── pages/
│ ├── base_page.py # 页面基类
│ ├── login_page.py # 登录页面
│ └── home_page.py # 首页
├── tests/
│ ├── test_login.py # 测试用例
│ └── conftest.py # pytest配置
├── utils/
│ ├── logger.py # 日志工具
│ └── screenshot.py # 截图工具
├── reports/ # 测试报告
├── screenshots/ # 截图目录
├── requirements.txt # 依赖包
└── run_tests.py # 运行脚本
```
#### 运行方式
```bash
# 运行所有测试
python run_tests.py
# 指定浏览器
python run_tests.py --browser firefox
# 使用无头模式
python run_tests.py --headless
# 运行特定测试文件
python run_tests.py --test tests/test_login.py
# 使用pytest直接运行
pytest tests/test_login.py -v --html=report.html
```
### SauceDemo网站介绍
* SauceDemo 是一个常用于自动化测试的演示网站,主要应用于UI测试和API测试。以下是关键信息:
##### 网站用途
- UI自动化测试:支持Selenium、Python、Java等工具进行网页元素交互测试,如登录、购物车操作等 。
- API测试:提供REST API接口,用于练习HTTP请求和响应处理 。
##### 技术实现
- 测试框架:常与Page Object Model(POM)设计模式结合,封装页面元素和行为,提升代码可维护性 。
- 工具支持:兼容SpecFlow、Cucumber等行为驱动开发(BDD)框架 。
### 执行结果
### 交流群
