selenium零基础知识 有关Selenium的历史演变

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“有关 Selenium 的历史演变”。

selenium零基础知识 有关Selenium的历史演变(1)

  Selenium历史演变

  Selenium用于测试基于Web的应用,也可以测试基于HTML5的手机APP应用。

  Selenium1.X与Webdriver整合后,形成的新的测试工具Selenium2.X。在Selenium1的时候,Selenium使用JavaScript达到测试自动化的目标。

  现在Selenium进入了Selenium4.X时代。

  1.Selenium RC

  早期的Selenium使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段JavaScript代码,在Selenium内核启动浏览器后注入这段JavaScript。开发过Web应用的人都知道,JavaScript可以获取并调用页面的任何元素,自如地进行操作,由此才实现了Selenium的目的:自动化Web操作。这种JavaScript注入技术的缺点是:速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的JavaScript质量高低。

  2.WebDriver

  当Selenium2.X提出了WebDriver的概念后,它提供了另外一种方式与浏览器交互。那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏、窗口大小、启动、关闭、安装插件、配置证书之类的)。由于使用的是浏览器原生的API,所以速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然更加科学。然而,带来的一些副作用是,不同的浏览器厂商对Web元素的操作和呈现多少会有一些差异,这就直接导致Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如,Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等(甚至包括了AndroidDriver和iOS WebDriver)。

  WebDriver Wire协议是通用的。也就是说,不管是FirefoxDriver,还是ChromeDriver,启动之后都会在某一端口启动基于这套协议的Web Service。例如,FirefoxDriver初始化成功后,默认会从http://localhost:7055开始,而ChromeDriver则大概是http://localhost:46350之类的。接下来,调用WebDriver的任何API,都需要借助一个ComandExecutor发送一个命令,实际上是一个HTTP request给监听端口上的Web Service。在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串告诉Selenium希望浏览器接下来做什么事情。

  在新建一个WebDriver的过程中,Selenium首先会确认浏览器的native component是否存在并可用,以及版本是否匹配。接着就在目标浏览器中启动一整套Web Service,这套Web Service使用了Selenium自己设计定义的协议,名字叫做The WebDriver Wire Protocol。这套协议非常强大,几乎可以操作浏览器做任何事情,包括打开、关闭、最大化、最小化、元素定位、元素点击、上传文件等。

  WebDriver可以运行在电脑上,也可以运行在手机上。

  3.Selenium3.X时代

  Selenium3.X与Selenium2.X的是主要区别在于以下几个方面。

  •   l 需要的JAVA最低版本是JDK8。
  •   l 所有浏览器都要驱动,取消默认浏览器。
  •   l 从Selenium核心的安装包中彻底删除了Selenium RC。
  •   l 支持在MacOS上使用Safari了。
  •   l 支持微软最新的浏览器Edge了。
  •   l 仅支持微软最新的浏览器IE 9及以上版本。
  • 4.Selenium4.1.0

1.Find方法的改动。

2.创建浏览器驱动对象时的参数设置

3.新版本提供打开新的窗口的功能

4.ActionChains的使用的影响

  整个Selenium可以通过图4-24所示。

selenium零基础知识 有关Selenium的历史演变(2)

图4-24 Selenium的演变

今天关于“有关 Selenium 的历史演变”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页