Java+Selenium+Testng自动化测试学习(二)
Java+Selenium+TestNG自动化测试框架整合
1、简化代码
封装一个定位元素的类,类型为ElementLocation
package com.test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import java.util.concurrent.TimeUnit;
/**
* 每次定位元素都调用相同的方法
* 将每个方法都封装起来仅供调用
*/
public class ElementLocation {
/**
* 通过id定位元素
* @param id
* @param elementId
*/
public void finElementByID(String id, String elementId, WebDriver driver){
driver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS);
driver.findElement(By.ById.id(id)).sendKeys(elementId);
}
/**
* 通过xpath定位元素
* @param xpath
* @param text
*/
public void findElementByXpath(String xpath,String text,WebDriver driver){
driver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS);
driver.findElement(By.ByXPath.xpath(xpath)).sendKeys(text);
}
/**
* 先清除文本框内容再通过ID定位元素
* @param id
* @param text
* @param text
*/
public void findElementByIdClearSendkeys(String id,String text,WebDriver driver){
driver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS);
driver.findElement(By.ById.id(id)).clear();
driver.findElement(By.ById.id(id)).sendKeys(text);
} /**
* 先清除文本框内容再通过xpath定位元素
* @param xpath
* @param text
*/
public void findElementByXpathClearSendkeys(String xpath,String text,WebDriver driver){
driver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS);
driver.findElement(By.ByXPath.xpath(xpath)).clear();
driver.findElement(By.ByXPath.xpath(xpath)).sendKeys(text);
}
/**
* 先清除文本框内容再通过cssSelector定位元素
* @param cssSelector
* @param text
*/
public void findElementByCssClearSendkeys(String cssSelector,String text,WebDriver driver){
driver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS);
driver.findElement(By.ByCssSelector.cssSelector(cssSelector)).clear();
driver.findElement(By.ByCssSelector.cssSelector(cssSelector)).sendKeys(text);
} /**
* cssSelector点击事件
* @param cssSelector
*/
public void findElementByCssClick(String cssSelector,WebDriver driver){
driver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS);
driver.findElement(By.ByCssSelector.cssSelector(cssSelector)).click();
}
/**
* xpath点击事件
* @param xpath
*/
public void findElementByXpathClick(String xpath,WebDriver driver){
driver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS);
driver.findElement(By.ByXPath.xpath(xpath)).click();
}
}
2、整合TestNG测试框架
1、Java整合TestNG这里用的jar包,先下载一个jar包;
2、将jar包导入工程里面(这里导入的是IDEA)
整合部分以登录为例:
package com.test; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; public class Login {
WebDriver driver = null;
//调用上面定位元素的类
ElementLocation elementLocation = new ElementLocation();
//在所有方法运行之前运行
@BeforeMethod
public void before(){
System.setProperty("webdriver.chrome.driver", "E:\\selenium\\chromedriver.exe");
driver = new ChromeDriver();
String url = "";
driver.manage().window().maximize();
driver.get(url);
}
/**
* 定位登录界面元素
* 1.输入正确手机号码
* 2.输入正确密码
* 3.登录成功
*/
@Test
public void test_login1(){
elementLocation.findElementByCssClearSendkeys("input[type='text']","11115232323",driver);
elementLocation.findElementByCssClearSendkeys("input[type='password']","111111",driver);
elementLocation.findElementByCssClick("button[type='button']",driver);
System.out.println("登录成功,跳转到首页");
}//在所有方法运行完之后运行
@AfterMethod
public void after(){
try{
Thread thread = new Thread();
thread.sleep();
driver.quit();
}catch (InterruptedException e){
e.printStackTrace();
} }
}
注:
1、提供调用定位元素的方法,还是有些复杂,在后面继续用的时候再进行优化。
2、整合TestNG
1、选用jar包比较方便,现在很多都不用jar包文件直接整合maven中,后面继续优化。
2、TestNG提供了很多注解,目前只用了三个。
@BeforeMethod:在运行一个方法之前运行该方法,仅运行一次
@AfterMethod:在运行一个方法之后运行该方法,仅运行一次
@Test:运行当前方法
Java+Selenium+Testng自动化测试学习(二)的更多相关文章
- Java+Selenium+Testng自动化测试学习(四)— 报告
自动化测试报告,在测试用例完成之后系统自动生成HTML报告 使用testng中的报告模板生成报告, 1.在TestSuit.xml文件中配置报告监听 2.运行xml文件 3.自动生成一个test-ou ...
- Java+Selenium+Testng自动化测试学习(三)— 断言
1.修改Login类加入断言: 断言:检查我们操作页面后得到的结果与我们预期的结果是否一致. 2.使用xml文件运行所有的测试类: Login类写入两个测试用例: package com.test; ...
- java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离
1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ...
- Java&Selenium&TestNG&ZTestReport 自动化测试并生成HTML自动化测试报告
一.摘要 本篇博文将介绍如何借助ZTestReport和HTML模版,生成HTML测试报告的ZTestReport 源码Clone地址为 https://github.com/zhangfei1984 ...
- java+Selenium+TestNg搭建自动化测试架构(3)实现POM(page+Object+modal)
1.Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例 ...
- java+Selenium+TestNg搭建自动化测试架构(2)实现跨浏览器功能
1.切换浏览器类:其中包含了切换浏览器的方法,以及关闭浏览器,设置等待时间,以及重写的断言方法 package com.rrx.framework; import java.io.IOExceptio ...
- java+selenium+testNG+excel 实现 web 网页的自动化测试
webdriver的关键字从excel读取,这样测试人员只需要在excel中填写相关用例即可 前端微站和后台系统的用例可整合在同一excel中,这样可实现前端与后台的闭循环测试 除了一些基本的校验规则 ...
- selenium+testNG自动化测试框架搭建
自动化测试框架搭建 1 Java环境的搭建 1.1访问oracle的官网下载最新版本的jdk http://www.oracle.com/technetwork/java/javase/downloa ...
- Java&Selenium Web自动化测试框架理念
一.自动化测试含义 在自动化测试领域内流传着一个说法:单元测试才是自动化测试的核心,在自动化测试里,无论框架何等完美都不可能脱离单元测试,单元测试将会是自动化测试里最小的单位,把它看作单位一,若干个单 ...
随机推荐
- Ioc依赖注入:Unity4.0.1 在项目中的应用 (MVC和API)
使用Unity的好处网上有很多,百度一下即可 这里引用了一篇关于面向接口编程的好处的文章作为引申:https://blog.csdn.net/Cyy19970527/article/details/8 ...
- Quick Sort(快速排序)
Quick Sort Let's arrange a deck of cards. Your task is to sort totally n cards. A card consists of a ...
- mysql-使用存储过程创建大批量数据
参考:https://www.iteye.com/blog/825635381-2161290 场景1.创建1万个table,每个table种插入1条记录 DELIMITER $$ CREATE DA ...
- [CF527D] Clique Problem - 贪心
数轴上有n 个点,第i 个点的坐标为xi,权值为wi.两个点i,j之间存在一条边当且仅当 abs(xi-xj)>=wi+wj. 你需要求出这张图的最大团的点数. Solution 把每个点看作以 ...
- clone()与clone(true)的用法
clone() 方法生成被选元素的副本,包含子节点.文本和属性. 使用 clone(true) 方法在clone()的基础上还包括克隆元素的事件处理器.
- js - 文字
居右 style="float:right;" 文字底部对齐(默认居中对齐) vertical-align:bottom; 文字居中 text-align:middle text- ...
- SpringBoot学习- 3、整合MyBatis
SpringBoot学习足迹 1.下载安装一个Mysql数据库及管理工具,同类工具很多,随便找一个都可以,我在windows下做测试项目习惯使用的是haosql 它内部集成了MySql-Front管理 ...
- BFC(块级格式化上下文)笔记
BFC特性: 1.BFC是一个独立的布局容器,内部元素不会影响BFC外面的元素,反之亦然. 2.计算BFC高度时,会计算内部的浮动元素. 3.BFC会阻止外边距的合并. 4.BFC的区域不会与外部浮动 ...
- 笔记本u盘插上不显示
u盘突然拔出笔记本再次插入时不显示: 解决方法:我的电脑-设备管理器-其他设备(你的U盘驱动)-卸载 再重新插上去,即可显示
- SQL Server 检查和处理死锁问题
SELECT spid, blocked, DB_NAME(sp.dbid) AS DBName, program_name, waitresource, lastwaittype, sp.login ...