zoukankan      html  css  js  c++  java
  • 驱动程序细节和权衡

    Selenium-WebDriver的驱动程序

    WebDriver是应该写入测试的关键接口的名称,但有几种实现。这些包括:

    HtmlUnit驱动程序

    这是目前WebDriver最快和最轻量级的实现。顾名思义,这是基于HtmlUnit。HtmlUnit是没有GUI的WebBrowser的基于Java的实现。对于任何语言绑定(除java以外),Selenium Server都需要使用此驱动程序。

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

    优点

    • 最快的WebDriver实现
    • 纯Java解决方案,因此它是平台独立的。
    • 支持JavaScript

    缺点

    • 模拟其他浏览器的JavaScript行为

    JavaScript中的驱动程序的HtmlUnit

    目前流行的浏览器都没有使用HtmlUnit(Rhino)使用的JavaScript引擎。如果使用HtmlUnit测试JavaScript,结果可能会与这些浏览器显着不同。

    当我们说“JavaScript”时,我们实际上是指“JavaScript和DOM”。虽然DOM是由W3C定义的,但每个浏览器都有自己的怪癖和它们在实现DOM方面的差异,以及JavaScript如何与它进行交互。HtmlUnit拥有令人印象深刻的DOM完整实现,并且对使用JavaScript有很好的支持,但它与其他任何浏览器没有什么不同:它与W3C标准和主要浏览器的DOM实现都有其自身的差异。

    使用WebDriver,我们必须做出选择; 我们是否启用了HtmlUnit的JavaScript功能,并且冒着团队陷入只出现在那里的问题的风险,还是因为知道有越来越多的依赖JavaScript的站点而禁用JavaScript?我们采取了保守的方法,并且默认情况下在使用HtmlUnit时禁用了支持。每次发布WebDriver和HtmlUnit,我们都会重新评估这一决定:我们希望在某个时候在HtmlUnit上默认启用JavaScript。

    启用JavaScript

    如果您不能等待,启用JavaScript支持非常简单:

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

    这将导致HtmlUnit驱动程序默认模拟Firefox 3.6的JavaScript处理。

    Firefox驱动程序

    使用Firefox插件控制Firefox浏览器。所使用的Firefox配置文件从机器上安装的内容中剥离下来,仅包含Selenium WebDriver.xpi(插件)。默认情况下,一些设置也会更改(请参阅源代码以查看哪些设置)Firefox驱动程序可以运行并在Windows,Mac,Linux上进行测试。目前在版本3.6,10,最新

    用法

    driver = webdriver.Firefox()

    优点

    缺点

    修改Firefox配置文件

    假设您想修改用户代理字符串(如上所述),但是您已经制作了一个包含数十个有用扩展的Firefox配置文件。有两种方法可以获取此配置文件。假设该配置文件是使用Firefox的配置文件管理器(firefox -ProfileManager)创建的,

    或者,如果配置文件尚未在Firefox中注册:

    在我们开发Firefox驱动程序的功能时,我们公开了使用它们的能力。例如,直到我们认为本地事件在Firefox for Linux上稳定后,它们在默认情况下处于禁用状态。要启用它们:

    profile = webdriver.FirefoxProfile()
    profile.native_events_enabled = True
    driver = webdriver.Firefox(profile)

    Internet Explorer驱动程序

    InternetExplorerDriver是一个独立的服务器,它实现WebDriver的有线协议。该驱动程序已经在Vista,Windows 7,Windows 8和Windows 8.1的适当组合下与IE 7,8,9,10和11进行了测试。

    该驱动程序支持运行32位和64位版本的浏览器。如何确定在启动浏览器时使用哪个“bit-ness”取决于启动哪个版本的IEDriverServer.exe。如果启动32位版本的IEDriverServer.exe,则将启动32位版本的IE。同样,如果启动64位版本的IEDriverServer.exe,则将启动64位版本的IE。

    用法

    driver = webdriver.Ie()

    优点

    • 运行在真实的浏览器中并支持Javascript

    缺点

    • InternetExplorerDriver显然只能在Windows上运行!
    • 相对较慢(尽管仍然非常活泼!)

    ChromeDriver

    ChromeDriver由Chromium 项目维护/支持WebDriver通过chromedriver二进制文件与Chrome一起使用。您需要同时安装chromedriver和Chrome浏览器版本。需要将chromedriver放置在系统路径的某个位置,以便WebDriver自动发现它。Chrome浏览器本身是由默认安装路径中的chromedriver发现的。这两者都可以被环境变量覆盖

    用法

    driver = webdriver.Chrome()

    优点

    • 运行在真实的浏览器中并支持JavaScript
    • 由于Chrome是基于Webkit的浏览器,ChromeDriver可能允许您验证您的网站是否在Safari中运行。请注意,由于Chrome浏览器使用自己的V8 JavaScript引擎而不是Safari的Nitro引擎,因此JavaScript执行可能会有所不同。

    缺点

     
  • 相关阅读:
    How to install VXDIAG Honda, Toyota and JLR SDD software
    16% off MPPS V16 ECU tuning tool for EDC15 EDC16 EDC17
    Cummins INSITE locked and ask for verification code
    How to use BMW Multi Tool 7.3 to replace lost key for BMW X1
    Bleed Brake Master Cylinder with Intelligent Tester IT2
    Porsche Piwis Tester II “No VCI has been detected”,how to do?
    Creader VIII VS. Creader VII+
    How to solve GM MDI cannot complete the installation
    汽车OBD2诊断程序开发 (原文转载,思路很清晰!)
    汽车节温器单片机开发思路
  • 原文地址:https://www.cnblogs.com/weiweim/p/8463622.html
Copyright © 2011-2022 走看看