目录
一、设计思路
PO模式
- 对象库层:二次封装Selenium的方法。 core:主要封装driver方法,并加入日志、失败截图
- 页面操作层(逻辑层):元素对象和元素操作的封装。page:封装页面的元素对象和元素操作
- 业务层:测试用例的操作部分。 test: 业务测试,使用testng框架执行测试用例
二、代码层级结构
代码层级如下:
.
├── README.md
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── selenium
│ │ │ └── webui
│ │ │ ├── Browser.java 浏览器类型枚举
│ │ │ ├── LocatorType.java 定位方式类型枚举
│ │ │ ├── core
│ │ │ │ ├── Config.java 加载环境配置文件,设置浏览器driver驱动参数
│ │ │ │ ├── DriverManager.java driver能力封装(点击、滚动、跳转、输入、元素定位查找检查、实现失败处理接口、异常截图等)
│ │ │ │ ├── FailureAction.java 失败处理接口--截图功能
│ │ │ │ └── WebDriverFactory.java 按浏览器类型创建driver
│ │ │ ├── page
│ │ │ │ ├── HomeSearchPage.java 页面类:继承page,定义页面元素、方法
│ │ │ │ ├── Page.java 基础页面:加载PO,页面元素初始化
│ │ │ │ └── ReturnValue.java
│ │ │ └── utils
│ │ │ ├── Constants.java
│ │ │ ├── FileManager.java 文件处理:查找文件是否存在,删除文件
│ │ │ ├── JsonFileParser.java json文件处理
│ │ │ ├── ResourcePathParser.java 读取path
│ │ │ ├── SshCmd.java 执行ssh,并执行命令
│ │ │ └── Util.java 工具类:加载配置文件、日期获取、等待、js脚本
│ │ └── resources
│ │ ├── application.properties 配置文件
│ │ ├── log4j.properties log4j配置文件
│ │ ├── testng.xml 测试用例集
│ │ └── webdriver
│ │ ├── IEDriverServer.exe
│ │ ├── chromedriver
│ │ ├── chromedriver.exe
│ │ ├── geckodriver
│ │ ├── geckodriver_0.11.0.exe
│ │ └── geckodriver_0.17.0.exe
│ └── test
│ └── java
│ └── com
│ └── selenium
│ └── webui
│ ├── TestPage.java 基础页面测试类:BeforeClass/AfterClass操作
│ └── page
│ └── TestHomeSearchPage.java 测试页面类继承TestPage:具体测试用例
三、核心功能实现
1.工具类:
// Load properties: application.properties.
public static Properties loadProperties(String path){
try{
InputStream is = Util.class.getClassLoader().getResourceAsStream(path);
if (is != null){