java+Selenium+TestNg搭建自动化测试架构(3)实现POM(page+Object+modal)
1.Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例的可维护性。
PageObject设计模式:是将某个页面的所有"元素(包含控件)属性"及"元素操作"封装在1个类(Class)里面。
2.以我们公司的登录页面为例讲解pom模式:

pom的模式就是测试代码和元素定位的分离,保证在元素定位发生改变的时候,不会再去更改测试代码,实现测试代码和页面元素的分离。
3.元素定位代码:
package com.rrx.test;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class TestLoginPage {
//登录名
@FindBy(xpath=".//*[@id='username']")
WebElement userName;
//密码
@FindBy(xpath=".//*[@id='password']")
WebElement password;
//登录按钮
@FindBy(xpath=".//*[@id='form']/div[4]/button")
WebElement login;
public void login(String user,String pass){
System.out.println(user);
userName.sendKeys(user);
password.sendKeys(pass);
login.click();
}
}
4.测试代码:
package com.rrx.test;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Test;
import com.rrx.framework.BorwserEngin;
import com.rrx.framework.Logger;
public class NewTest {
@Test
public void f() throws IOException, InterruptedException {
BorwserEngin borwser=new BorwserEngin();
Reporter.log("我在打印日志");
WebDriver driver = borwser.getDriver();
TestLoginPage page=PageFactory.initElements(driver, TestLoginPage.class);
page.login("hexin001","Test123456");
Reporter.log("我退出浏览器了");
Thread.sleep(3000);
Logger.getLogger().info("退出");
// borwser.tearDown();
}
}
java+Selenium+TestNg搭建自动化测试架构(3)实现POM(page+Object+modal)的更多相关文章
- java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离
1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ...
- java+Selenium+TestNg搭建自动化测试架构(2)实现跨浏览器功能
1.切换浏览器类:其中包含了切换浏览器的方法,以及关闭浏览器,设置等待时间,以及重写的断言方法 package com.rrx.framework; import java.io.IOExceptio ...
- Java&Selenium&TestNG&ZTestReport 自动化测试并生成HTML自动化测试报告
一.摘要 本篇博文将介绍如何借助ZTestReport和HTML模版,生成HTML测试报告的ZTestReport 源码Clone地址为 https://github.com/zhangfei1984 ...
- Java+Selenium+Testng自动化测试学习(二)
Java+Selenium+TestNG自动化测试框架整合 1.简化代码 封装一个定位元素的类,类型为ElementLocation package com.test; import org.open ...
- 基于Java+Selenium的WebUI自动化测试框架(六)---浏览器初始化
本篇我们来讨论,如何写一个浏览器初始化的类.在写之前,先思考一下,我们需要一个什么样的初始化? 先来看看使用原生的Java + selenium是怎么做的.(以firefox为例) System.se ...
- Java+Selenium环境搭建
初学者---简单的selenium环境搭建: 1. 安装JAVA环境 2.下载eclipse 3.下载firefox (不要最高版本,容易出现selenium不兼容问题) 4. 下载selenium需 ...
- 通过Java + selenium +testNG + Page Objects 设计模式 实现页面UI的自动化
Page Objects 设计模式 简单的讲,类似与Java面向对象编程,把每个页面都抽象为一个对象类,将页面元素的定位.业务逻辑操作分离开,然后我们可以通过testNG实现业务流程的控制 与 测试 ...
- Selenium(十九):unittest单元测试框架(五) Page Object设计模式
1. Page Object设计模式 Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,它主要体现在对界面交互细节的封装,这样可以使测试方案更关注于业务而非界面细节.从 ...
- 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample
到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...
随机推荐
- Oracle数据仓库套件
OBIEE RPD:定义不同分析的主题角度,确定相应的事实表和维度表 报表层:选取需要的维度和度量,根据筛选器选取需要的数据 可视化:用图形展示数据,支持常见的图形:如折线图,饼图,堆叠图等. ODI ...
- python 测试登录接口只返回response200的问题
但是使用postman测试是有json串的 后来发现postman传参是用的raw格式,raw的格式相当于json 而这里的data其实是form-data格式,需要用json的格式
- 最详细的 linux grep命令教程
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- CCF-CIDR合并-201812-3
看着很长的一道题目,其实还可以...但我只有90分...可能有些细节没有注意到...难受! 思路: 数据结构: string str ; 存储32位01串 int len: 前缀长度 首先将输入的 ...
- 第一次实验: CC2530平台上电源管理与休眠
实验一 CC2530平台上电源管理与休眠 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的认识TinyOS编程的基础和简单的程序编写 学生通过本实验能够初步的了解和掌握Ti ...
- 软件可维护性的影响因素&如何提升
影响因素: 1.可理解性 2.可测试性 3.可修改性 4.可移植性 5.可重用性 如何提升: 1.建立明确的软件质量目标2.使用先进的软件开发技术和工具3.建立明确的质量保证4.选择可维护的语言5.改 ...
- ajax的小知识---总是得到重复的数据
按xmlhttp.open("GET","/try/ajax/demo_get.php",true);发送,可能会得到缓存中的结果; 可以改为xmlhttp.o ...
- Hello_World
简单A+B #include <stdio> int main() { int a,b; scanf("%d%d",&a, &b); printf(&q ...
- Android Studio 调试快捷键
一直在用微软的东西,用 Android Studio 开发还是太坑了.网上很多人说调试快捷竟然都是错的,不知道是不是不同版本不一样. Android Studio 3.2 快捷键如下: F7:进入当前 ...
- day04 迭代器&生成器&装饰器
目录 1.迭代器 2.生成器 3.推导式 4.匿名函数 5.内置函数 6.递归 7.闭包 8.装饰器 一.迭代器 特点: 1. 省内存 2. 只能向前. 不能反复 3. 惰性机制 让不同的数据类型 ...