此文主要通过 三种浏览器(Chrome、Firefox、IE)启动脚本 功能,进行 Selenium2 三种浏览器启动方法的实战实例讲解。文中所附源代码于 2015-01-18 20:33 亲测通过,敬请亲们阅览。进行编写登录自动化测试脚本,若您直接使用此文所附的源代码运行测试,则需要修改对应 浏览器 或 webdriver 的路径,否则将会引起相应的报错,请知悉。

希望能对初学 Selenium2 WebUI 自动化测试编程的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!

一、各浏览器 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)启动脚本源代码的更多相关文章

  1. Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)

    此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkTe ...

  2. Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置

    此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...

  3. 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 ...

  4. Selenium2学习-035-WebUI自动化实战实例-033-页面快照截图应用之三 -- 区域截图(专业版)

    之前有写过两篇博文讲述了 WebUI 自动化测试脚本中常用的截图方法,敬请参阅如下所示链接: 浏览器显示区域截图 浏览器指定区域截图 那么当需要截取的区域不在浏览器显示窗口范围之内时,之前的方法显然无 ...

  5. Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)

    日常的 Web UI 自动化测试过程中,get 或 navigate 到指定的页面后,若想截图的元素或者指定区域范围不在浏览器的显示区域内,则通过截屏则无法获取相应的信息,反而浪费了无畏的图片服务器资 ...

  6. Selenium2学习-039-WebUI自动化实战实例-文件上传下载

    通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...

  7. Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题

    日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...

  8. Selenium2学习-016-WebUI自动化实战实例-014-Selenium 窗口选择

    在日常的 WebUI 自动化测试脚本编写过程中,经常需要打开新的页面,或者在多个打开的页面之间进行切换,以对页面元素进行相应的操作,以模拟用户的行为,实现 UI 的自动化测试.在过往的时间中,经常有初 ...

  9. Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}

    之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日 ...

  10. Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select

    此文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,对下拉列表框 Select 的操作. 下拉列表是 Web UI 自动化测试过程中使用率非常高的,通常有两种形式的下拉列表,一 ...

随机推荐

  1. python 中chr(),unichr(),ord()的用法

    chr()根据整数返回对应的字符,也就是讲ascii转换为字符 unichr()将整数返回成unicode字符 ord()将字符转换成ascii码

  2. [Cocos2d-x For WP8]Menu菜单

    菜单栏这是游戏里面基本的控件来的, 头文件: #include <CCMenu.h>                        继承关系图:   头文件:  #include < ...

  3. COJ986 WZJ的数据结构(负十四)

    WZJ的数据结构(负十四) 难度级别:D: 运行时间限制:6000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大小 ...

  4. 对于String对象,可以使用"="赋值,也可以使用"new"关键字赋值,两种方式有什么区别?

    当你看见这个标题的时候,你可能会下意识的去想一下,这两种方式到底有什么样的区别呢? 且看下面的demo,自然便区分开了 /** * */ package com.b510.test; /** * Pr ...

  5. 验证标题是否存在(TextBox控件失去焦点验证)

    首先解释两个属性, AutoPostBack 属性用于设置或返回当用户在 TextBox 控件中按 Enter 或 Tab 键时,是否发生自动回传到服务器的操作. 如果把该属性设置为 TRUE,则启用 ...

  6. JS来操作hover

    hover我们可以用css的方式写,当然,也可以用js的方式写 <html> <head> <title>js的下拉菜单效果</title> <s ...

  7. Qt 5.4 OpenCV 2.4.11 Win 32 Configuration

    Download CMake 2.8.2 Download OpenCV 2.4.11 Download Qt 5.4 Highly improtant note: The installation ...

  8. 使用SimpleXML应该注意的问题有哪些?

    SimpleXML提供了一套简单快速的XML操作方法,大大地提高了XML操作的效率. 但是有时不小心也会带来不小的麻烦,看下面一段代码: $xml=simplexml_load_string('< ...

  9. lucene 3.0.2 中文分词

    package lia.meetlucene; import java.io.IOException; import java.io.Reader; import java.io.StringRead ...

  10. 修改CSV中的某些值 -- 2

    C:\aaa.csv "IPAddress","FullDomainName","RequestedTargetGroupName" &qu ...