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自动化测试学习(二)的更多相关文章

  1. Java+Selenium+Testng自动化测试学习(四)— 报告

    自动化测试报告,在测试用例完成之后系统自动生成HTML报告 使用testng中的报告模板生成报告, 1.在TestSuit.xml文件中配置报告监听 2.运行xml文件 3.自动生成一个test-ou ...

  2. Java+Selenium+Testng自动化测试学习(三)— 断言

    1.修改Login类加入断言: 断言:检查我们操作页面后得到的结果与我们预期的结果是否一致. 2.使用xml文件运行所有的测试类: Login类写入两个测试用例: package com.test; ...

  3. java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离

    1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ...

  4. Java&Selenium&TestNG&ZTestReport 自动化测试并生成HTML自动化测试报告

    一.摘要 本篇博文将介绍如何借助ZTestReport和HTML模版,生成HTML测试报告的ZTestReport 源码Clone地址为 https://github.com/zhangfei1984 ...

  5. java+Selenium+TestNg搭建自动化测试架构(3)实现POM(page+Object+modal)

    1.Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例 ...

  6. java+Selenium+TestNg搭建自动化测试架构(2)实现跨浏览器功能

    1.切换浏览器类:其中包含了切换浏览器的方法,以及关闭浏览器,设置等待时间,以及重写的断言方法 package com.rrx.framework; import java.io.IOExceptio ...

  7. java+selenium+testNG+excel 实现 web 网页的自动化测试

    webdriver的关键字从excel读取,这样测试人员只需要在excel中填写相关用例即可 前端微站和后台系统的用例可整合在同一excel中,这样可实现前端与后台的闭循环测试 除了一些基本的校验规则 ...

  8. selenium+testNG自动化测试框架搭建

    自动化测试框架搭建 1 Java环境的搭建 1.1访问oracle的官网下载最新版本的jdk http://www.oracle.com/technetwork/java/javase/downloa ...

  9. Java&Selenium Web自动化测试框架理念

    一.自动化测试含义 在自动化测试领域内流传着一个说法:单元测试才是自动化测试的核心,在自动化测试里,无论框架何等完美都不可能脱离单元测试,单元测试将会是自动化测试里最小的单位,把它看作单位一,若干个单 ...

随机推荐

  1. react-react中的css+评论组件

    一个小案例,巩固有状态组件和无状态组件的使用 通过for循环生成多个组件 数据: CommentList = [ { user: '张三', content: '哈哈,沙发' }, { user: ' ...

  2. 在ASP.NET 中调用 WebService 服务

    一.webservice定义 详见 https://www.cnblogs.com/phoebes/p/8029464.html 二.在ASP.NET MVC 中调用 webservice 1:要调用 ...

  3. Tram POJ - 1847 spfa

    #include<iostream> #include<algorithm> #include<queue> #include<cstdio> #inc ...

  4. 数据预处理 | python 第三方库 imblearn 处理样本分布不均衡问题

    说明:目前 只记录了 过采样 和 欠采样 的代码部分 1 样本分布不均衡描述: 主要出现在与分类相关的建模问题上,不均衡指的是不同类别的样本量差异非常大. 样本量差距过大会影响到建模结果 2 出现的场 ...

  5. LaTeX技巧004:LaTeX不用添加到目录制作书签技巧

    这里给大家介绍一个命令,需要hyperref宏包.该命令格式如下: \pdfbookmark[]{text}{anchor} \tableofcontents 顺序应该是这样,如果换过来,书签指向的位 ...

  6. linux 安装 setuptools

    wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar ...

  7. AntDesign(React)学习-10 Dva 与后台数据交互

    明天正式在线办公没时间学习了,今天晚上再更新一篇, 代码提交一次:https://github.com/zhaogaojian/jgdemo 1.src下创建services目录 创建文件userSr ...

  8. EasyExcel实现导入excel

    https://blog.csdn.net/rexueqingchun/article/details/91870372 1.pom.xml配置依赖包 <!-- xls格式excel依赖包 -- ...

  9. AcWing 1020. 潜水员 二维费用背包

    //体积最多是j 全部为0,v>=0 //体积恰好为j f[0][0]=0,f[i]=无穷,v>=0 //体积至少是j f[0][0]=0,f[i]=无穷,体积为负数时于0取大 #incl ...

  10. [POI2000] 公共串 - 后缀数组,二分

    [POI2000] 公共串 Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度. Solution 预处理出后缀数组和高度数组,二分答案 \(k\) ,对于每一个连续的 ...