1、HtmlUnitDriver

WebDriver包括一个基于HtmlUnit的无界面实现,称为HtmlUnitDriver,即使用HtmlUnit时并不会打开真实的浏览器,而是在内存中执行代码,因此运行速度很快,但是对JavaScript的支持不够好,当页面上有复杂的JavaScript元素时,经常捕捉不到。

eclipse测试例子如下:

WebDriver dr = new HtmlUnitDriver();

dr.get(“http://www.baidu.com“);

WebElement element = dr.findElement(By.name(“wd”));

element.sendKeys(“webdriver”);

element.submit();

Thread.sleep(5000);

System.out.println(“page title is:”+dr.getTitle());

运行成功时控制台会打印百度搜索页面标题“page title is:webdriver_百度搜索”。

2、Firefox

WebDriver实现了FireFoxDriver,无需用户下载FireFoxDriver。

优点:FireFoxDriver对页面的自动化测试支持得比较好,很直观地模拟页面的操作,对JavaScript的支持也非常完善,基本上页面上做的所有操作FireFox Driver都可以模拟。

缺点:启动很慢,运行也比较慢,不过,启动之后Webdriver的操作速度虽然不快但还是可以接受的,建议不要频繁启动停止FireFoxDriver。

使用Firefox浏览器只需要设置WebDriver driver = new FirefoxDriver(),前提是你的Firefox被安装在默认的位置。

操作系统 Firefox默认安装位置

Linux firefox (found using “which”)

Mac /Applications/Firefox.app/Contents/MacOS/firefox

Windows %PROGRAMFILES%\Mozilla Firefox\firefox.exe

如果你的FireFox没有被安装在指定的位置,可以设置“webdriver.firefox.bin”来指定它的位置,java代码如下:

System.setProperty(“webdriver.firefox.bin”,”thelocation of Firefox”);

eclipse测试例子如下:

System.setProperty(“webdriver.firefox.bin”,”D:\Mozilla Firefox\firefox.exe”);

WebDriver dr = new FirefoxDriver();

dr.get(“http://www.baidu.com“);

WebElement element = dr.findElement(By.name(“wd”));

element.sendKeys(“webdriver”);

element.submit();

Thread.sleep(5000);

System.out.println(“page title is:”+dr.getTitle());

3、Chrome

webdriver没有实现chromedriver,要使用chrome浏览器需要自己下载chromedriver.exe(下载地址:http://code.google.com/p/chromedriver/downloads/list),这个程序是由Chrome团队提供的,你可以看做它是链接WebDriver和Chrome浏览器的桥梁。

eclipse例子如下:

System.setProperty(“webdriver.chrome.driver”,”D:\chromedriver\chromedriver.exe”); //指定chromedriver的路径

System.setProperty(“webdriver.chrome.bin”,”C:\Documents and Settings\gongjf\Local Settings\Application Data\Google\Chrome\Application\chrome.exe”); //chrome没有安装在默认路径时,指定chrome.exe的路径

WebDriver driver = new ChromeDriver();

driver.get(“http://www.baidu.com“);

4、IE

webdriver要使用IE浏览器需要下载InternetExplorerDriver.exe(下载地址:http://code.google.com/p/selenium/downloads/list),根据浏览器的版本下载32位或者64位的driver。

注意:需要将IE浏览器各个区域的保护模式设置的一样,要么全勾选,要么全不勾选,工具–Internet选项–安全。还需要将页面的缩放比例设置为100%

优点:直观地模拟用户的实际操作,对JavaScript提供完善的支持。

缺点:是所有浏览器中运行速度最慢的,并且只能在Windows下运行,对CSS以及XPATH的支持也不够好。

System.setProperty(“webdriver.ie.driver”,”D:\iedriver\IEDriverServer.exe”); //设置IEDriverService.exe的路径;如果IE没有安装在默认目录,同样需要设置webdriver.ie.bin

WebDriver driver = new InternetExplorerDriver();

driver.get(“http://www.baidu.com“);

Selenium HtmlUnitDriver 多浏览器的支持的更多相关文章

  1. selenium + python 多浏览器测试

    selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...

  2. selenium与chrome浏览器及驱动的版本匹配

    用selenium+python+webdriver完成UI功能自动化,经常会碰到浏览器版本与驱动的版本不匹配而引起报错,下面就selenium与chrome浏览器及驱动的版本匹配 做个总结. 使用W ...

  3. Python selenium + Firefox启动浏览器

    Python selenium 的运用 from selenium import webdriver # from selenium.webdriver.firefox.firefox_profile ...

  4. 基于Python, Selenium, Phantomjs无头浏览器访问页面

    引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧. 1. 无头浏览器 通常大家在在打开网页的工具就是浏览器,通过界面上输 ...

  5. 爬虫(五)—— selenium模块启动浏览器自动化测试

    目录 selenium模块 一.selenium介绍 二.环境搭建 三.使用selenium模块 1.使用chrome并设置为无GUI模式 2.使用chrome有GUI模式 3.查找元素 4.获取标签 ...

  6. 华为手机浏览器不支持PUT提交方式的解决方案

    最近所在技术团队在开发webapp项目,前端angularjs+后端.Net MVC API,API登录接口定义为PUT提交方式,在做兼容测试时发现UC.safari.微信浏览器下都可以登录,但在华为 ...

  7. MediaElement.js对不同浏览器的支持

    目前已经有很多html5播放器可以使用,使用html5播放器可以轻松的在页面中插入媒体视频,从而使我们的web页面变得更加丰富多彩,所以今天向大家推荐一款非常优秀的html5播放器MediaEleme ...

  8. 关于HTML5音频——audio标签和Web Audio API各平台浏览器的支持情况

    对比audio标签 和 Web Audio API 各平台浏览器的支持情况:   audio element Web Audio API desktop browsers Chrome 14 Yes  ...

  9. (原创)如何使用selenium 驱动chrome浏览器并且打开方式为手机模式-转载请注明出处

    随着移动设备使用率的不断增加,移动页面的测试也变得越来越重要. 对于互联网公司M站的测试,如果不通过专用的appium等移动端测试工具是否还有方便快捷的办法呢?答案当然是有啊. 使用chrome dr ...

随机推荐

  1. 浏览器与服务器间的交互(客服端 <---> 服务器)

    浏览器与服务器间的交互(客服端 <---> 服务器) 请求--->处理--->响应 对类HttpContext 内部成员的使用 例如 :Request .Response .  ...

  2. MySQL 出现 The table is full 的解决方法

    原文链接: MySQL 出现 The table is full 的解决方法 浅谈MySql的存储引擎(表类型) MySQL 出现 The table is full 只有一个原因,对应的表数据容量达 ...

  3. QTableView 添加进度条 添加按钮 TreeWidget 增删改

    http://www.cnblogs.com/li-peng/p/3961386.html http://www.cnblogs.com/li-peng/p/3961843.html http://w ...

  4. 设计模式(八)装饰器模式Decorator(结构型)

    设计模式(八)装饰器模式Decorator(结构型) 1. 概述 若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性.如果已经存在的一个类缺少某些方法 ...

  5. shell 脚本阅读之二——ltp工具下的runltp

    #!/bin/sh ################################################################################ ## ## ## ...

  6. iOS swift lazy loading

    Why bother lazy loading and purging pages, you ask? Well, in this example, it won't matter too much ...

  7. urlrewrite 匹配规则之优先选择

    urlrewrite rule可以使用java的正则表达式匹配规则,但是这里存在一个问题点,假如有一个通配的规则和一个精确匹配的规则,urlrewrite 会选择那个去匹配呢? 如下两种规则: < ...

  8. Android创建与读取Excel

    主流的操作Excel的有两种方法,一种是通过poi包,另一种是通过jxl包.这里我主要讲解通过jxl包来读写Excel. 首先需要导入一个jxl.jar包. 下载地址:http://www.andyk ...

  9. C# 课堂总结4-类(常用的类)

    一.string类 1. str.Length:字符串的长度 *****str[索引号] 2. str.Trim():去除左右两边的空格 *****str.TrimStart():去掉左边的空格str ...

  10. 简要解析XMPP框架及iOS-Objective-C的使用

    前言:这两天看了XMPP框架,查阅了一些资料,写下这篇文章记录一下学习笔记 一.简要解析XMPP核心部分 XMPP框架分为两个部分 1.核心部分 2.扩展部分 扩展部分主要讲好友列表(roster). ...