selenium2 基于对象的测试,在selenium2中一共支持以下浏览器:
- Firefox(FirefoxDriver)
- IE(InternetExplorerDriver)
- Chrome(ChromeDriver)
- Opera(OperaDriver)
- Andriod(AndroidDriver)
- iPhone(IPhoneDriver)
一、Firefox浏览器测试
//打开默认路径的firefor(C:\Program Files (x86)\Mozilla Firefox\firefox.exe)
package Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
//打开firefox浏览器
public class TestDemo1 {
public static void main(String[] args) {
WebDriver driver;
//默认打开是去C盘下面去找,但是我们不是安装在C盘下,所以要指明路径 setProperty()设置指定键对值的系统属性
System.setProperty("webdriver.firefox.bin","F:\\软件安装\\firefox\\firefox.exe"); //双斜杠是转义
//实例化一个对象firefox
driver=new FirefoxDriver();
String testUrl="http://192.168.3.86:8701/yunling-pac-adm/login.jhtml";
driver.get(testUrl);
driver.quit();
}
}
注:如果浏览器启动不能打开网页,可能是firefox版本过高
二、Chrome浏览器测试
chrome在 webdriver中没有自带的驱动,需要网上下载一个
WebDriver driver=new ChromeDriver();
System.setProperty("webdriver.chrome.driver", "E:\\webdriver\\chromedriver\\chromedriver.exe");
//这是与firefox一各很大的区别
下载地址:http://npm.taobao.org/mirrors/chromedriver/
三、IE浏览器测试
也需要下载驱动
System.setProperty("webdriver.ie.driver", "F:\\webdriver\\iedriver\\IEDriverServer.exe");
driver=new InternetExplorerDriver();
四、使用Mac系统中的Safari浏览器测试
环境准备:在Mac系统中默认都会安装Safari浏览器,所以无需进行特别的安装配置,使用webdriver自动化无需下载驱动程序
直接实例化浏览器对象
WebDriver driver = new SafariDriver() ;
五、使用TestNG进行并发兼容性测试
Web项目中经常会进行浏览器的兼容性测试,而兼容性测试的工作重复性相当高,TestNG提供了并发执行测试用例的功能,可以让测试用例以并发的形式执行,实现并发测试不同浏览器的兼容性测试需求。
测试用例说明:分别使用IE,Chrome,Firefox浏览器,并发方式打开sogou首页中搜索某个关键词。
测试代码:
public class BingFaTest {
private WebDriver driver;
private String baseUrl="http://www.sogou.com";
@Parameters("browser")
@BeforeClass
public void BeforeTest(String Browser){
if(Browser.equalsIgnoreCase("firefox")){
System.setProperty("webdriver.firefox.bin", "F:\\firefox\\firefox.exe");
driver=new FirefoxDriver();
}else if (Browser.equalsIgnoreCase("ie")) {
System.setProperty("webdriver.ie.driver", "F:\\webdriver\\iedriver\\IEDriverServer.exe");
driver=new InternetExplorerDriver();
}else {
System.setProperty("webdirver.chrome.driver", "E:\\webdriver\\chromedriver\\chromedriver.exe");
driver=new ChromeDriver();
}
driver.get("http://www.sogou.com");
}
@Test
public void testSougoSearch() throws InterruptedException {
driver.get(baseUrl);
driver.findElement(By.id("query")).sendKeys("自动化测试");
driver.findElement(By.id("stb")).click();
Thread.sleep(10000);
Assert.assertTrue(driver.getPageSource().contains("自动化"));
}
@AfterClass
public void AfterClass(){
driver.close();
}
}
TestNG.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name ="Suite" parallel="tests" thread-count="3">
<test name ="FirefoxTest">
<parameter name="browser" value="firefox"/>
<classes >
<class name="cn.gloryroad.BingFaTest"/>
</classes>
</test>
<test name="IETest">
<parameter name="browser" value="ie"/>
<classes>
<class name="cn.gloryroad.BingFaTest"/>
</classes>
</test>
<test name="ChromeTest">
<parameter name="browser" value="chrome"/>
<classes>
<class name="cn.gloryroad.BingFaTest"/>
</classes>
</test>
</suite>
需要驱动包的私问我!
- 浅谈配置chrome浏览器允许跨域操作的方法
浅谈配置chrome浏览器允许跨域操作的方法 一:(Lying人生感悟.可忽略) 最近有一天,对着镜子,发现满脸疲惫.脸色蜡黄.头发蓬松.眼神空洞,于是痛诉着说生活的不如意,工作没激情,工资不高,一个 ...
- 【ASP.NET MVC系列】浅谈Google Chrome浏览器(操作篇)(下)
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 浅谈关于QT中Webkit内核浏览器
关于QT中Webkit内核浏览器是本文要介绍的内容,主要是来学习QT中webkit中浏览器的使用.提起WebKit,大家自然而然地想到浏览器.作为浏览器内部的主要构件,WebKit的主要工作是渲染.给 ...
- 【架构】浅谈web网站架构演变过程
浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管 ...
- 浅谈Ddos攻击攻击与防御
EMail: jianxin#80sec.comSite: http://www.80sec.comDate: 2011-2-10From: http://www.80sec.com/ [ 目录 ]一 ...
- 浅谈PHP技术应用
序号:1210-41 黑龙江省高等教育自学考试 本科毕业论文 题 目 浅谈PHP技术 学员姓名 夏滟 专 业 计算机及应用 准考证号 010311192585 指导 ...
- 浅谈Tomcat和Servlet
本文浅谈下对Tomcat和Servlet总体的理解,初学时有用过一段时间,但当时疲于应对如何xml配置和使用,对他们的理解就像是一个黑匣子.现在回顾一下帮助自己加深网络的理解.开始还是先推荐我看的文章 ...
- 转载-浅谈Ddos攻击攻击与防御
EMail: jianxin#80sec.comSite: http://www.80sec.comDate: 2011-2-10From: http://www.80sec.com/ [ 目录 ]一 ...
- 前端性能优化--为什么DOM操作慢? 浅谈DOM的操作以及性能优化问题-重绘重排 为什么要减少DOM操作 为什么要减少操作DOM
前端性能优化--为什么DOM操作慢? 作为一个前端,不能不考虑性能问题.对于大多数前端来说,性能优化的方法可能包括以下这些: 减少HTTP请求(合并css.js,雪碧图/base64图片) 压缩( ...
随机推荐
- tomcat优化实例
———————————————————————————————————— 一.运行模式优化 修改tomcat运行模式为nio<Connector port="80" prot ...
- zabbix添加监控Mysql
起因:zabbix自带的mysql监控模板直接使用会显示“不支持的”因为key的值是通过Mysql用户查看"show global status"信息或者用mysqladmin命令 ...
- Python2基础
1.python 3.python函数 python的函数定义: 以def关键字定义一个函数: 参数放在小括号里面: 必须有return语句: 关键字参数: 即调用函数时传参顺序可以人为指定 默认参数 ...
- 错误模块名称: KERNELBASE.dll
部署win服务时,经常会出现类似下面的错误,错误模块名称: KERNELBASE.dll. 日志名称: Application 来源: Application ...
- 【Python】一份非常好的Matplotlib教程
Matplotlib 教程 本文为译文,原文载于此,译文原载于此.本文欢迎转载,但请保留本段文字,尊重作者和译者的权益.谢谢.: ) 介绍 Matplotlib 可能是 Python 2D-绘图领域使 ...
- python之旅六【第七篇】面向对象
面向对象三大特性 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强... 面向对象编程 ...
- python调用opencv库教程
OpenCV安装pip install --upgrade setuptoolspip install numpy Matplotlibpip install opencv-python OpenCV ...
- Basic remains POJ - 2305 同余模 高精度处理
题意 给出B(10以内大于0)进制下 p (1000位以内)和m(9位以内) 求 p%m 在b进制下等于什么 思路: 可以计算 1e9不会溢出Int所以m在int值以内 先求m 要处理p 每 ...
- 【XSY2720】区间第k小 整体二分 可持久化线段树
题目描述 给你你个序列,每次求区间第\(k\)小的数. 本题中,如果一个数在询问区间中出现了超过\(w\)次,那么就把这个数视为\(n\). 强制在线. \(n\leq 100000,a_i<n ...
- jsp配置
jsp.server.xml <Host name="localhost" appBase="webapps" unpackWARs="true ...