java+Selenium+TestNg搭建自动化测试架构(2)实现跨浏览器功能
1.切换浏览器类:其中包含了切换浏览器的方法,以及关闭浏览器,设置等待时间,以及重写的断言方法
package com.rrx.framework;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Parameters;
public class BorwserEngin {
	public String browserName;
	public  String URL;
	public  WebDriver driver;
public void initConfigDate() throws IOException {
		browserName = PropertiesEngine.getProperties("browserName");
		URL = PropertiesEngine.getProperties("URL");
  //System.out.println(browserName);
	}
     @Parameters("Browser")
	public WebDriver getDriver() throws IOException {
    	 initConfigDate();
    	 Logger.getLogger().info("浏览器名称"+browserName);
    	 Logger.getLogger().info("URL:"+URL);
    	 System.out.println(browserName);
		if (browserName.equalsIgnoreCase("Firefox")) {
			System.setProperty("webdriver.firefox.bin", "");
			driver = new FirefoxDriver();
		} else if (browserName.equalsIgnoreCase("Chrome")) {
			System.setProperty("webdriver.chrome.driver",
					"C:\\Users\\Administrator\\workspace\\SeleniumKuangJia\\driver\\chromedriver.exe");
			  driver = new ChromeDriver();
		} else if (browserName.equalsIgnoreCase("IE")) {
			System.setProperty("webdriver.ie.driver", "");
			driver = new InternetExplorerDriver();
		}
		driver.get(URL);
		return driver;
	}
/**
	 * //关闭浏览器并且推出
	 */
	public void tearDown() {
		driver.quit();
	}
 /**
  * 隐式时间等待方法
  * imlicitlyWait是隐式等待,一般在查找元素的时候使用。例如,我设置一个查找元素最大时间为10秒,使用了
    imlicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,知道超过10秒,报超时错误。
  */
	public void callTime(int time){
driver.manage().timeouts().implicitlyWait(time, TimeUnit.SECONDS);
	}
/**
 * 断言方法	
 */
	public static void assertEqual(Object object,Object object2){
		try {
			Assert.assertEquals(object, object2,"不相同");
		} catch (Error e) {
Reporter.log(""+e);//断言错误是把日志打印在测试报告中
			Logger.getLogger().info(e);//打印在logger日志中
}
}
}
2.日志的输出采用long4j和Reporter两种方法。Reporter会将日志打印到测试报告中。如果不知道具体方法的可以查看我之前的博客。
java+Selenium+TestNg搭建自动化测试架构(2)实现跨浏览器功能的更多相关文章
- java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离
		1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ... 
- java+Selenium+TestNg搭建自动化测试架构(3)实现POM(page+Object+modal)
		1.Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例 ... 
- 基于Java+Selenium的WebUI自动化测试框架(六)---浏览器初始化
		本篇我们来讨论,如何写一个浏览器初始化的类.在写之前,先思考一下,我们需要一个什么样的初始化? 先来看看使用原生的Java + selenium是怎么做的.(以firefox为例) System.se ... 
- Java&Selenium&TestNG&ZTestReport 自动化测试并生成HTML自动化测试报告
		一.摘要 本篇博文将介绍如何借助ZTestReport和HTML模版,生成HTML测试报告的ZTestReport 源码Clone地址为 https://github.com/zhangfei1984 ... 
- java+selenium+testNG+Allure报表【新增截图到报表功能】
		1.pom.xml配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w ... 
- Java+Selenium+Testng自动化测试学习(二)
		Java+Selenium+TestNG自动化测试框架整合 1.简化代码 封装一个定位元素的类,类型为ElementLocation package com.test; import org.open ... 
- Java+Selenium环境搭建
		初学者---简单的selenium环境搭建: 1. 安装JAVA环境 2.下载eclipse 3.下载firefox (不要最高版本,容易出现selenium不兼容问题) 4. 下载selenium需 ... 
- 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample
		到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ... 
- jenkins、ant、selenium、testng搭建自动化测试框架
		如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入,然后写一些测试脚本,这就是你所说的自动化测试,其实这个还不能算是真正的自动化测试,你见过每次需要运行的时候还需要打开ec ... 
随机推荐
- 浏览器h5新建文件  保存到本地(相当于浏览器写文件)
			function doSave(value, type, name) { var blob; if (typeof window.Blob == "funct ... 
- 阿里云 oss 图片上传解决方案 vue (web直传)
			我们通过aliyun-oss-web这个npm去解决 该文章主要介绍如何获取 imgSignature 和 imgPolicy 这两个参数 首先下载 web直传的案例 : http://files.c ... 
- UVa 712
			这个题根本不用建树,因为是完全二叉树,可以把这个想成二进制.对于根是二进制数的首位,之后依次类推.到最后的叶子节点就是从0到pow(2,n)-1. 关键在于在第一次输入的不是按照x1,x2,x3,x4 ... 
- 前端---js02
			主要内容 1.数组 2.字符串 3.Date日期对象 4.内置对象 5.定时器 6.DOM 7.伪数组 内置对象: 1 数组(列表) Array (1) 数组的创建 <script>//字 ... 
- 18.python关于mysql的api
			一.pymysql模块1.pymysql是Python中操作MySQL的模块2.执行sql语句(1)连接数据库: import pymysql #连接mysql数据库创建conn对象(host连接的机 ... 
- nginx日志分割
			mark 参考文章: https://blog.csdn.net/molaifeng/article/details/82667158 
- 20164318 毛瀚逸 Exp1 PC平台逆向破解
			一.逆向及Bof基础实践说明 1.1实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 手工修 ... 
- 熟悉 JUnit 测试
			2.1 Mooctest 使用心得 web Ide挺方便,就是很慢.mooctest很方便入门软件测试,但是里面的题目还是不多. 2.2 Junit 编写代码经验总结 1.首先要熟悉junit中经常使 ... 
- apache做反向代理
			实验目的 通过apache实现反向代理的功能,类似nginx反向代理和haproxy反向代理 环境准备 逻辑架构如下 前端是apche服务器,监听80端口,后端有两台web服务器,分别是node1和n ... 
- [tomcat]tomcat 9.0.x 控制台中文乱码解决办法
			根本原因,tomcat 输出的东西,与cmd控制台或者IDE控制台编码不一致. 修改tomcat输出内容的编码,%CATALINA_HOME%/conf/logging.properties 9.0. ... 
