`
xinklabi
  • 浏览: 1586899 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

selenium使用更快的Driver--HtmlUnit Driver

 
阅读更多

转自:http://sunjun041640.blog.163.com/blog/static/2562683220131024114610625/

selenium使用更快的Driver--HtmlUnit Driver  

2013-11-24 12:05:20|  分类: Java |  标签:selenium  |举报|字号 订阅

 
 
最近使用selenium时,发现driver打开浏览器挺慢的,先后使用过firefox,chrome都感觉很慢,比如淘宝首页,手工打开浏览器访问,全部渲染完成,2-3s就完成了,而使用driver来打开,一般都得要5-10s的样子,效率确实挺低的。现在可以使用HtmlUnit Driver了,它基于htmlunit,用java来模拟一个浏览器,速度很快。
官方说明如下:

HtmlUnit Driver

This is currently the fastest and most lightweight implementation of WebDriver. As the name suggests, this is based on HtmlUnit. HtmlUnit is a java based implementation of a WebBrowser without a GUI. For any language binding (other than java) the Selenium Server is required to use this driver.

这个driver是当前最快的driver实现

Usage

WebDriver driver = new HtmlUnitDriver(); //java的使用方式
 
driver = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.HTMLUNIT) //python的使用方式

Pros

  • Fastest implementation of WebDriver//最快的
  • A pure Java solution and so it is platform independent.//纯java实现,所以是跨平台的
  • Supports JavaScript//支持js

Cons

  • Emulates other browsers’ JavaScript behaviour (see below)

JavaScript in the HtmlUnit Driver  //如何开启javascript的支持

None of the popular browsers uses the JavaScript engine used by HtmlUnit (Rhino). If you test JavaScript using HtmlUnit the results may differ significantly from those browsers.

When we say “JavaScript” we actually mean “JavaScript and the DOM”. Although the DOM is defined by the W3C each browser has its own quirks and differences in their implementation of the DOM and in how JavaScript interacts with it. HtmlUnit has an impressively complete implementation of the DOM and has good support for using JavaScript, but it is no different from any other browser: it has its own quirks and differences from both the W3C standard and the DOM implementations of the major browsers, despite its ability to mimic other browsers.

With WebDriver, we had to make a choice; do we enable HtmlUnit’s JavaScript capabilities and run the risk of teams running into problems that only manifest themselves there, or do we leave JavaScript disabled, knowing that there are more and more sites that rely on JavaScript? We took the conservative approach, and by default have disabled support when we use HtmlUnit. With each release of both WebDriver and HtmlUnit, we reassess this decision: we hope to enable JavaScript by default on the HtmlUnit at some point.

Enabling JavaScript

If you can’t wait, enabling JavaScript support is very easy:

HtmlUnitDriver driver = new HtmlUnitDriver(true); //java的调用方式
  
driver = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.HTMLUNITWITHJS)  //python的调用方式

This will cause the HtmlUnit Driver to emulate Firefox 3.6’s JavaScript handling by default.

//上述代码会使得 HtmlUnit Driver 模拟 Firefox3.6 对 JavaScript 的处理。

 

使用HtmlUnit Driver时,需要使用selenium-server,
启动selenium-server,然后:

java

WebDriver driver =newRemoteWebDriver(new URL("http://localhost:4444/wd/hub"),
DesiredCapabilities.htmlUnitWithJs());

python

driver = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.HTMLUNITWITHJS)

分享到:
评论

相关推荐

    selenium-htmlunit-driver-2.9.0

    selenium-htmlunit-driver-2.9.0jar包 selenium-htmlunit-driver-2.9.0jar包 selenium-htmlunit-driver-2.9.0jar包 selenium-htmlunit-driver-2.9.0jar包

    htmlunit-driver-2.49.1-API文档-中文版.zip

    赠送jar包:htmlunit-driver-2.49.1.jar; 赠送原API文档:htmlunit-driver-2.49.1-javadoc.jar; 赠送源代码:htmlunit-driver-2.49.1-sources.jar; 赠送Maven依赖信息文件:htmlunit-driver-2.49.1.pom; 包含...

    htmlunit-driver-2.49.1-API文档-中英对照版.zip

    赠送jar包:htmlunit-driver-2.49.1.jar; 赠送原API文档:htmlunit-driver-2.49.1-javadoc.jar; 赠送源代码:htmlunit-driver-2.49.1-sources.jar; 赠送Maven依赖信息文件:htmlunit-driver-2.49.1.pom; 包含...

    selenium-htmlunit-driver-2.46.0.jar

    java运行依赖jar包

    selenium-htmlunit-driver-2.47.1.jar

    java运行依赖jar包

    htmlunit jar包

    在使用`selenium-htmlunit-driver-2.9.0.jar`时,你需要将其添加到你的Java项目类路径中。然后,你可以创建一个`RemoteWebDriver`实例,指定`HtmlUnitDriver`作为浏览器类型,这样就可以开始编写测试代码了。以下是...

    htmlunit-2.20.zip

    7. **性能**:由于其无头特性和轻量级设计,HTMLUnit通常比启动完整浏览器更快,减少了资源消耗。 为了在Java项目中使用HTMLUnit,你需要将压缩包解压后得到的jar文件添加到项目的类路径中。然后,你可以通过以下...

    htmlunit-driver:适用于HtmlUnit无头浏览器的WebDriver兼容驱动程序

    HtmlUnitDriver HtmlUnitDriver是适用于无头浏览器的WebDriver兼容驱动程序。 消息 下载及安装 Maven / Gradle / ... ...您可以简单地使用HtmlUnit驱动程序类中的构造函数之一 // simple case - no j

    selenium2jar包,webdriverjar包

    3. **selenium-server-standalone-2.44.0.jar**:这是Selenium服务器的独立版本,集成了多种WebDriver协议的支持,包括HTMLUnit、Firefox、Chrome、IE等。运行这个JAR文件可以启动一个服务器,该服务器接受来自测试...

    Selenium集成Jmeter

    如果在多线程环境下遇到问题,比如挂起现象,可以尝试更改浏览器驱动,例如使用HtmlUnit,它可能提供更好的性能。 对于使用Selenium RC的情况,需要将`selenium-java-client-driver.jar`复制到JMeter的`%JMETER_...

    selenium2.48.2类库

    这个文件是Selenium WebDriver的独立服务器,它集成了各种WebDriver协议支持,包括HTMLUnit、Firefox、Chrome、IE和Opera等浏览器驱动。运行这个服务器,你可以通过WebDriver API远程控制浏览器执行测试脚本。它...

    自动化测试chromedriver2.25所需driver及jar

    3. `selenium-htmlunit-driver.jar`: 对HTMLUnit浏览器的支持。 4. `selenium-server-standalone.jar`: Selenium服务器的独立版本,可以启动一个本地服务器进行远程控制。 5. `selenium-chrome-driver.jar`: 专门...

    htmlunit依赖的所有jar

    import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class HtmlUnitTest { public static void main(String[] args) { HtmlUnitDriver driver = new HtmlUnitDriver(); driver.get(...

    Appium + Selenium 2 入门

    对于那些已经使用 Selenium 1 编写过测试脚本的团队来说,迁移到 Selenium 2 可以带来显著的性能提升和更好的稳定性。迁移过程中需要注意以下几点: - **更新依赖库**:确保所有依赖库都是最新的,并且与 Selenium ...

    selenium2.0使用

    相比于Selenium 1.0(Selenium RC),WebDriver更加轻量级,因为它直接与浏览器的内核进行交互,而不是通过JavaScript执行,这使得测试更接近实际用户的体验。 **2. 安装Selenium WebDriver** 2.1 安装JDK并配置...

    selenium2.0_中文帮助文档

    虽然 Selenium 2.0 推出了 WebDriver API,但在某些情况下,仍可能需要使用 Selenium 1.0 的 API。Selenium 2.0 兼容了旧版本的部分 API,以便于迁移。 通过以上内容,我们可以了解到 Selenium 2.0 的核心功能和...

    selenium+java+junit+maven

    利用Selenium的API来模拟用户操作,如`driver.get(url)`加载页面,`driver.findElement()`定位元素,`element.click()`执行点击操作等。 4. **断言验证**:在测试方法中加入断言,例如`assertEquals()`,来验证预期...

Global site tag (gtag.js) - Google Analytics