Selenium2学习-005-WebUI自动化实战实例-003-三种浏览器(Chrome、Firefox、IE)启动脚本源代码
此文主要通过 三种浏览器(Chrome、Firefox、IE)启动脚本 功能,进行 Selenium2 三种浏览器启动方法的实战实例讲解。文中所附源代码于 2015-01-18 20:33 亲测通过,敬请亲们阅览。进行编写登录自动化测试脚本,若您直接使用此文所附的源代码运行测试,则需要修改对应 浏览器 或 webdriver 的路径,否则将会引起相应的报错,请知悉。
希望能对初学 Selenium2 WebUI 自动化测试编程的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!
一、各浏览器 WebDriver 驱动文件下载
- Chrome 驱动文件(浏览器版本 31 下测试通过):http://yunpan.cn/cyadeJIxkwWwg 提取码 e475
- Internet Explorer 驱动文件下载(浏览器版本 11 下测试通过):http://yunpan.cn/cyadeJIxkwWwg 提取码 e475
- Firefox 为 Selenium 原生支持,无需下载 webdriver
二、各浏览器启动脚本
当前使用的 Selenium Jar 文件为:selenium-server-standalone-2.42.2.jar
- Chrome
/**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package main.java.aaron.sele.demo; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* UI自动化功能测试脚本:启动 Chrome 浏览器
*
* 实现 Chrome 浏览器启动的步骤如下:
* 1.设定需要启动的 Chrome 的安装路径
* 2.设定 Chrome 对应的 webdriver
* 3.启动 Chrome, 并最大化
* 4.打开百度
* 5.关闭并退出
*
* @author Aaron.ffp
* @version $Id: StartBrowerChrome.java, V0.1 2015-1-18 15:07:49 Aaron.ffp Exp $
*/
public class StartBrowerChrome {
private static WebDriver cd;
private static String baseUrl; // 百度首页网址 /**
* 主方法入口
* @param args
*/
public static void main(String[] args) {
/* 启动 chrome */
chromeStart();
/* 打开百度 */
cd.get(baseUrl);
/* 等待加载 */
cd.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
/* 关闭 chrome */
chromeQuit();
} /**
* Chrome WebDriver 设置, 网址及搜索内容初始化, 打开 Chrome 浏览器
*/
public static void chromeStart(){
/* 设定 chrome 启动文件的位置, 若未设定则取默认安装目录的 chrome */
System.setProperty("webdriver.chrome.bin", "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe");
/* 设定 chrome webdirver 的位置 */
System.setProperty("webdriver.chrome.driver", "C:/Windows/System32/chromedriver.exe");
/* 百度首页网址赋值 */
baseUrl = "http://www.baidu.com/";
/* 启动 chrome 浏览器 */
cd = new ChromeDriver();
/* 浏览器最大化 */
cd.manage().window().maximize();
} /**
* 关闭并退出 Chrome
*/
public static void chromeQuit(){
/* 关闭 chrome */
cd.close();
/* 退出 chrome */
cd.quit();
}
}
- Firefox
/**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package main.java.aaron.sele.demo; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver; /**
* UI自动化功能测试脚本:启动 Firefox 浏览器
*
* 实现 Firefox 浏览器启动的步骤如下:
* 1.设定需要启动的 Firefox 的安装路径
* 2.启动 Firefox, 并最大化
* 3.打开百度
* 4.关闭并退出
*
* @author Aaron.ffp
* @version $Id: StartBrowerFirefox.java, V0.1 2015-1-18 15:08:46 Aaron.ffp Exp $
*/
public class StartBrowerFirefox {
private static WebDriver ff;
private static String baseUrl; // 百度首页网址 /**
* Firefox WebDriver 设置, 网址及搜索内容初始化, 打开 Firefox 浏览器
*/
public static void FirefoxStart(){
/* 设定 Firefox 启动文件的位置, 若未设定则取默认安装目录的 FirefoxQuit */
// System.setProperty("webdriver.firefox.bin", "C:/Program Files (x86)/Mozilla Firefox/firefox.exe");
/* 设定 Firefox webdirver 的位置, Selenium 提供了对 Firefox 的原生支持,因而不要设定其 webdriver */ /* 百度首页网址赋值 */
baseUrl = "http://www.baidu.com/";
/* 启动 Firefox 浏览器 */
ff = new FirefoxDriver();
/* 浏览器最大化 */
ff.manage().window().maximize();
} /**
* @function 测试主入口
* @description
* @author Aaron.ffp
* @version V0.1: main, 2015年1月19日 下午5:26:05 Aaron.ffp Exp $
*
* @param args
*/
public static void main(String[] args) {
/* 启动 Firefox */
FirefoxStart();
/* 打开百度 */
ff.get(baseUrl); /* 等待加载 */
ff.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); /* 关闭 Firefox */
// FirefoxQuit();
} /**
* 关闭并退出 Firefox
*/
public static void FirefoxQuit(){
/* 关闭 Firefox */
ff.close();
/* 退出 Firefox */
ff.quit();
}
}
- Internet Explorer
/**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package main.java.aaron.sele.demo; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities; /**
* UI自动化功能测试脚本:启动 InternetExplorer 浏览器
*
* 实现 InternetExplorer 浏览器启动的步骤如下:
* 1.设定需要启动的 InternetExplorer 的安装路径
* 2.设定 InternetExplorer 对应的 webdriver
* 3.设定 InternetExplorerDriver 启动参数
* 4.启动 InternetExplorer, 并最大化
* 5.打开百度
* 6.关闭并退出
*
* @author Aaron.ffp
* @version $Id: StartBrowerIE.java, V0.1 2015-1-18 15:12:33 Aaron.ffp Exp $
*/
public class StartBrowerIE {
private static WebDriver ie;
private static String baseUrl; // 百度网址 /**
* 设定系统环境, 启动 IE 浏览器
*/
public static void ieStart(){
/* 设定 IE 浏览器启动文件路径 */
System.setProperty("webdriver.ie.bin", "C:/Program Files/Internet Explorer/iexplore.exe");
/* 设定 IEDriverServer 文件路径 */
System.setProperty("webdriver.ie.driver", "c:/windows/system32/IEDriverServer.exe"); /* 设定百度网址 */
baseUrl = "http://www.baidu.com"; /* 设定 InternetExplorerDriver 参数, 忽略安全验证, 忽略后测试脚本将不稳定或难于调试 */
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
ie = new InternetExplorerDriver(ieCapabilities); /* 浏览器最大化 */
ie.manage().window().maximize();
} /**
*
* @param args
*/
public static void main(String[] args) {
/* 启动 IE 浏览器 */
ieStart();
/* 打开百度网址 */
ie.get(baseUrl); /* 等待加载 */
ie.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); /* 退出并关闭 IE 浏览器 */
ieQuit();
} /**
* 退出并关闭 IE 浏览器
*/
public static void ieQuit(){
ie.close();
ie.quit();
}
}
若将第 44 - 46 行(忽略浏览器设定的安全域验证)注销,改为 ie = new InternetExplorerDriver(); 则运行脚本时无法通过浏览器设定的安全域验证,会提示如下报错信息:
Started InternetExplorerDriver server (32-bit)
2.37.0.0
Listening on port 38775
Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.18 seconds
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'AaronFan-PC', ip: '10.24.68.138', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:162)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:225)
at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:182)
at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:174)
at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:146)
at main.java.aaron.sele.demo.StartBrowerIE.ieStart(StartBrowerIE.java:38)
at main.java.aaron.sele.demo.StartBrowerIE.main(StartBrowerIE.java:47)
至此,WebUI 自动化功能测试脚本第 003 篇-三种浏览器(Chrome、Firefox、IE)启动脚本 顺利完结,希望此文能够给初学 Selenium 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
Selenium2学习-005-WebUI自动化实战实例-003-三种浏览器(Chrome、Firefox、IE)启动脚本源代码的更多相关文章
- Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)
此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkTe ...
- Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置
此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...
- Selenium2学习-007-WebUI自动化实战实例-005-解决 Firefox 版本不兼容:org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary
此文主要讲述 Java 运行 Selenium 脚本时,因 Friefox 浏览器版本与 selenium-server-standalone-x.xx.x.jar 不兼容引起的 org.openqa ...
- Selenium2学习-035-WebUI自动化实战实例-033-页面快照截图应用之三 -- 区域截图(专业版)
之前有写过两篇博文讲述了 WebUI 自动化测试脚本中常用的截图方法,敬请参阅如下所示链接: 浏览器显示区域截图 浏览器指定区域截图 那么当需要截取的区域不在浏览器显示窗口范围之内时,之前的方法显然无 ...
- Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)
日常的 Web UI 自动化测试过程中,get 或 navigate 到指定的页面后,若想截图的元素或者指定区域范围不在浏览器的显示区域内,则通过截屏则无法获取相应的信息,反而浪费了无畏的图片服务器资 ...
- Selenium2学习-039-WebUI自动化实战实例-文件上传下载
通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...
- Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题
日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...
- Selenium2学习-016-WebUI自动化实战实例-014-Selenium 窗口选择
在日常的 WebUI 自动化测试脚本编写过程中,经常需要打开新的页面,或者在多个打开的页面之间进行切换,以对页面元素进行相应的操作,以模拟用户的行为,实现 UI 的自动化测试.在过往的时间中,经常有初 ...
- Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}
之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日 ...
- Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select
此文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,对下拉列表框 Select 的操作. 下拉列表是 Web UI 自动化测试过程中使用率非常高的,通常有两种形式的下拉列表,一 ...
随机推荐
- 【BZOJ】1098: [POI2007]办公楼biu(补图+bfs+链表)
http://www.lydsy.com/JudgeOnline/problem.php?id=1098 显然答案是补图连通块..... 想到用并查集...可是连补图的边都已经...n^2了...怎么 ...
- 【BZOJ】2329: [HNOI2011]括号修复(splay+特殊的技巧)
http://www.lydsy.com/JudgeOnline/problem.php?id=2329 和前一题一样,不就多了个replace操作吗.好,就打一下. 然后交上去wa了........ ...
- mysql中INSTR函数的用法
mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTo ...
- ADO.NET对象之 DataTable
ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源. DataTable对象表示保存在本机内存中的 ...
- VS2012网布网站与IIS配置
一 VS发布 1首先是 点击自己创建的 web项目 ,右键发布 2 在之后出现的界面中选择配置文件 , 选择或导入发布配置文件,下拉框,选择新建 跳转到下一步 3 在连接界面中 在发布方法中选择文件 ...
- 使用Eclipse开发Java Web过程中Debug调试的使用方法
里介绍的是在Eclipse中的Debug调试. 首先右击项目选择Debug As -- Debug on Server 或者点击Server面板的小昆虫图标,启动Debug模式. 运行web项目,进行 ...
- 撑起大规模PHP网站的开源工具
撑起大规模PHP网站的开源工具 百万级PHP站点Poppen.de的架构 在 2011年11月27日 那天写的 已经有 3957 次阅读了 感谢 参考或原文 服务器君一共花费了54.510 ...
- 使用ngrok
使用ngrok让微信公众平台通过80端口访问本机 首先声明我是用java-tomcat来研究微信公众平台的. 微信公众平台要成为开发者,需要填写接口配置信息中的“URL”和“Token”这两项(参见: ...
- Nginx模块fastcgi_cache的几个注意点
fastcgi响应http请求的结果中,响应头包括Expires、Cache-Control、Set-Cookie三个,都会可能不被cache. thinkphp3.0禁止session自动启动 co ...
- 在Delphi下,如何使ShowMessage中的按钮中文化
如果你使用messagedlg(对showmessage也适用)可以汉化定义按钮caption的常量,具体操作步骤如下: 1. 打开文件consts.pas(在Delphi安装目录的/source ...