selenium中有提供pageObject,支持将页面元素和动作单独封装到一个类中。

但是,当页面元素发生变化的时候(在项目的维护过程中,很很容易发生的),就需要去修改源代码。为了解决这个问题,可以实现一套完全解耦的简单测试框架。

该框架的主要思想,是 将各个测试页面的定位信息存放到xml中,解析后的xml信息映射到相应的类中。当页面定位信息改变的时候,只需修改xml文件即可。

下面是项目框架:自动化测试--实现一套完全解耦的简单测试框架

base:用来存放一些测试初始化操作以及对selenuim部分功能的2次封装,之后会上代码。

pageLocator:用来存放一个页面定位器的类,该类包含by、value、desc三个属性。方便将页面定位元素的信息映射到我们这个类上。

testCase:测试用例

util:帮助类。存放 如之前博客中封装的getDriver等

 

下面是该框架的具体实现:

1.先使用maven引入各jar包

selenium、TESTNG(管理用例)、log4j(记录日志)、dom4j(解析xml)、poi(读取excel)。下面是笔者的pom.xml

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 2   <modelVersion>4.0.0</modelVersion>
 3   <groupId>com.claire.leafly</groupId>
 4   <artifactId>projectLemon</artifactId>
 5   <version>0.0.1-SNAPSHOT</version>
 6   <dependencies>
 7   
 8   <dependency>
 9     <groupId>org.seleniumhq.selenium</groupId>
10     <artifactId>selenium-java</artifactId>
11     <version>3.4.0</version>
12 </dependency>
13 
14    <!-- https://mvnrepository.com/artifact/org.testng/testng -->
15 <dependency>
16     <groupId>org.testng</groupId>
17     <artifactId>testng</artifactId>
18     <version>6.9.10</version>
19     <scope>test</scope>
20 </dependency>
21 
22 <!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
23 <dependency>
24     <groupId>dom4j</groupId>
25     <artifactId>dom4j</artifactId>
26     <version>1.6.1</version>
27 </dependency>
28 
29 
30   <!-- https://mvnrepository.com/artifact/log4j/log4j -->
31 <dependency>
32     <groupId>log4j</groupId>
33     <artifactId>log4j</artifactId>
34     <version>1.2.17</version>
35 </dependency>
36 
37   <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
38 <dependency>
39     <groupId>org.apache.poi</groupId>
40     <artifactId>poi-ooxml</artifactId>
41     <version>3.17</version>
42 </dependency>
43 
44   </dependencies>
45   <build>
46     <plugins>
47     <!-- 1:解决每次右键项目名-maven->update project 时候,项目jdk版本变了,变回1.5版本或者其他版本 
48     2: 解决使用maven编译其他问题:如提示不能在内部类访问外部非final局部变量 
49     -->
50         <plugin>
51             <groupId>org.apache.maven.plugins</groupId>
52             <artifactId>maven-compiler-plugin</artifactId>
53             <version>3.5.1</version>
54             <configuration>
55                 <source>1.8</source>
56                 <target>1.8</target>
57                 <encoding>UTF-8</encoding>
58             </configuration>
59         </plugin> 
60     </plugins>
61 </build>
62   
63 </project>
View Code

相关文章:

  • 2021-07-01
  • 2021-06-30
  • 2021-09-13
  • 2021-10-27
  • 2021-08-12
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-04
  • 2021-07-06
  • 2021-09-20
  • 2021-12-12
  • 2021-09-15
相关资源
相似解决方案