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自动化测试框架理念
一.自动化测试含义 在自动化测试领域内流传着一个说法:单元测试才是自动化测试的核心,在自动化测试里,无论框架何等完美都不可能脱离单元测试,单元测试将会是自动化测试里最小的单位,把它看作单位一,若干个单 ...
随机推荐
- mybatis第二天01
MyBatis第二天01 1.高级结果映射 1.1根据视频案例,分析表之间的关系 数据模型分析 1. 明确每张表存储的信息 2. 明确每张表中关键字段(主键.外键.非空) 3. 明确数据库中表与表之间 ...
- 2019牛客多校第一场H XOR 线性基模板
H XOR 题意 给出一组数,求所有满足异或和为0的子集的长度和 分析 n为1e5,所以枚举子集肯定是不可行的,这种时候我们通常要转化成求每一个数的贡献,对于一组数异或和为0.我们考虑使用线性基,对这 ...
- H5手机端开发问题及解决方案
ios竖屏拍照上传,图片被旋转问题 1.通过第三方插件exif-js获取到图片的方向2.new一个FileReader对象,加载读取上传的图片3.在fileReader的onload函数中,得到的图片 ...
- C语言sprintf函数的深入理解
由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.这也导致sprintf比printf有用得多.所以本文着重介绍sprintf, ...
- 05 部署mysql关系数据库
01 安装Mysql 在官网https://dev.mysql.com/上找到自己需要的版本并执行安装 sudo apt-get install mysql-server-5.7 02 运行和退出 # ...
- Sql Server:创建用户并指定该用户只能看指定的视图,除此之外的都不让查看
1,在sql server中选择好要操作的数据库 2,--当前数据库创建角色 exec sp_addrole 'seeview' --创建了一个数据库角色,名称为:[seeview] 3,- ...
- [CF755B] PolandBall and Game - 博弈论
[CF755B] Description 两个人轮流说单词,每个人只能说自己的的单词库里的单词.被任意方说过的单词不能再说.一个单词只会在某个人的单词库中出现一次,但是可能同时出现在两个人的单词库中. ...
- MATLAB一些常用的function
在MATLAB中一些常用的算数符号与我们平时所用的不同,比如:根号,平方,e,以及对数函数等. (1)平方:a^2 意思为a的平方,亦可以写成a*a: (2)根号:sqrt(x)意思为对x开根号,x既 ...
- MANIFEST.MF详解及配置的注意事项
一.详解 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介 ...
- 当你工作与生活迷茫时可以来看看 shuke
青春是用来奋斗的 很多人在还没工作的时候,总感觉自己有能力会混的不错.毕业几年后,发现社会跟学校完全是两个世界.不经常思考的人,惰性总会让人得过且过混日子,不思考未来的路怎么走,就等于你安于现状,接受 ...