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 ...
随机推荐
- 微信小程序登录(包括获取不到unionid的情况)
我们一般都是先获取到微信的 unionid,然后再通过 unionid 去登录自己的网站,就可以关联到用户在自己网站上的 user_id,但是在小程序登录中,有时候可以获取到 unionid,有时候获 ...
- UNION ALL 心得
TABLE_A 表 UNION ALL TABLE_B 表 UNION 或者 UNION ALL 之后 1.字段长度 必须相同 (如A 10 个列,则B 也要10个列) 2.查询条件也要相同 (A ...
- VS2013 Winform程序打包部署 InstallShield2015LimitedEdition
VS2013 Winform程序打包部署 VS2013默认是没有安装打包程序的,需要手动安装,我安装的是 InstallShield2015LimitedEdition. 1.点击解决方案,右键,选择 ...
- SQL Sever 2012版本数据库的完全安装流程
首先安装SQL Sever 2012数据库,我们要下载好安装包.将安装包存储在磁盘中. 安装前将杀毒软件和相关安全的软件等退出,以免造成安装中的错误. 安装环境:Win7 64位操作系统 注:SQL ...
- About cookie
1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据. 2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间. ...
- usg6000
USG6000密码恢复 1.如果某个管理员遗忘了密码,可以使用其它高权限的管理员账号登录设备,然后修改密码.例如,管理员admin1的密码遗忘,此时可以由管理员admin登录设备,然后修改admin1 ...
- RedHat7系列(Centos/Debian) FireWall 防火墙 设置
RedHat 7 系列之后 系统把默认的iptables 换成了 Firewall 所以我们要适应 这个新的防火墙管理 -------------------服务相关----------------- ...
- 面向对象编程导论 An Introduction to Object-Oriented Programming (Timothy 著)
第1章 面向对象思想 第2章 抽象 第3章 面向对象设计 第4章 类和方法 第5章 消息,实例和初始化 第6章 案例研究: 八皇后问题 第7章 研究研究: 台球游戏 第8章 继承与替换 第9章 案例研 ...
- webbrowser 里的js函数和C#的函数互相调用方式
1.c#程序里要添加 [System.Runtime.InteropServices.ComVisibleAttribute(true)] 和 webBrowser1.ObjectForScrip ...
- ES6新增的数据类型Map和Set。
Javascript的默认对象表示方式 {} ,即一组键值对. 但是Javascript的对象有个小问题,就是键必须是字符串.但实际上Number或者其他数据类型作为键也是非常合理的. 为了解决这个问 ...