java selenium教程之selenium详细介绍
作者:肖佳 发布时间:2023-07-30 13:53:52
Selenium 是目前用的最广泛的Web UI 自动化测试框架。 本系列文章,将深入简出来讲解selenium 的用法
阅读目录
selenium 的命名
selenium 的意思是 硒 (有点QTP 杀手的意思)
QTP mercury 是水银 硒可以对抗水银
QTP 目前的价格是 三个单机版 十万人民币左右, 越来越少的人用QTP了
什么是selenium
一套软件工具,用来支持不同的自动化测试方法
开源软件:可以根据需要来增加重构工具的某些功能
跨平台:linux , windows mac
核心功能就是可以在多个浏览器上进行自动化测试
支持多种编程语言
目前已经被google , 百度, 腾讯等公司广泛使用
能够实现类似商业工具的大部分功能,并且还实现了商业工具不能支持的功能
建议大家整体学习整套工具, 将来好选择适合自己测试目的的测试工具。
Selenium 的发展历史
2004年在ThoughtWorks 公司, 一个叫做Jason Huggins为了减少手工测试的工作, 自己写了一套Javascript的库, 这套库可以进行页面交互, 并且可以重复的在不同浏览器上进行重复的测试操作。
这套库后来变为了Selenium Core. 为Selenium Remote Control (RC) 和Selenium IDE 提供了坚实的核心基础能力
Selenium 的作用是划时代的,因为他允许你使用多种语言来控制浏览器。
浏览器的对JS的安全限制也对Selenium的发展带来了困扰,并且Web程序也越来越大,特性也越来越多,都对selenium的发展来说带来了不少困难
2006年Google 的工程师Simon Stewart开启了一个叫做WebDriver的项目, 此项目可以直接让测试工具使用浏览器和操作系统本身提供的方法, 借此来绕过JS环境的沙盒效应, WebDriver项目目标就是为了解决Selenium的痛处
2008年北京奥运年会, Selenium 和 WebDriver 这两个项目进行了合并, Selenium 2.0 出现了,也就是大家说的WebDriver
Selenium 的工具套件
selenium 2 (aka. Selenium Webdriver)提供了极佳的测试工具特性, 例如:关联的面向对象API
Selenium 1 (aka. Selenium RC or Remote Control) 支持更多的浏览器,支持更多的编程语言(Java, JavaScript, Ruby PHP)
Selenium IDE (集成开发环境) 是Firefox 的插件, 有图形界面来录制和回放脚本。 此插件只是用来做原型工具,不用希望你使用这个工具来运行所有的测试脚本
Selenium-grid 可以并行的在多个测试环境之下测试脚本,实现脚本的并发测试执行。 缩短大量测试脚本集合的执行时间
选择你的Selenium 工具
如果没有编程经验,建议选择Selenium IDE 来熟悉Selenium 的命令。 使用IDE以快速来创建简单的测试脚本
我们不建议你选择Selenium IDE 来执行自动化测试,
建议先熟悉:Selenium IDE
再进一步熟练使用Selenium-WebDriver API
WebDriver 支持的浏览器
IE6-10
FireFox大部分版本
Chrome
Safari
Opera
Andrioid 系统上的自带浏览器
IOS系统上自带浏览器
HtmlUnit的 * 面实现
Selenium 1和 WebDriver 的区别
WebDriver 是Selenium 1 的升级版本, 也可以理解为两个不同的产品
WebDriver 相比Selenium 1 来说可以更好地绕过JS的限制,API也更易于使用.
Selenium 1 比WebDriver 支持更多的浏览器
WebDriver 可以实现向下兼容Selenium 1 的脚本


猜你喜欢
- 一、重载 1、重载示意 重载(Overload)是重新加载的意思,指的是同一个类中同名,但是参
- 数组:是一组相关变量的集合数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组数据的有
- 本文主要描述在C#中线程同步的方法。线程的基本概念网上资料也很多就不再赘述了。直接接入 主题,在多线程开发的应用中,线程同步是不可避免的。在
- 本文基于SpringBoot 2.5.0-M2讲解Spring中Lifecycle和SmartLifecycle的作用和区别,以及如何控制S
- 引言依照领导要求区分了两种压测模式:固定次数压测和固定时间压测。此前一直沿用的都是固定次数,所以本次第二版剥离了固定次数的模式增加了固定时间
- @Value取值为NULL的问题在spring mvc架构中,如果希望在程序中直接使用properties中定义的配置值,通常使用一下方式来
- 一.前言:CentOS7.0虽然自带JDK1.7和1.8,运行“java -version”命令也可以看到版本信息,但是jdk的安装环境不全
- 背景在Java中一个回调的操作是一个在一些操作完成之后被传递到另一个函数中并且被执行的函数。一个回调函数既可以被同步或者异步执行。在一个同步
- 企业级项目开发中都会有文件、图片、视频等文件上传并能够访问的场景,对于初学者Demo可能会直接存储在应用服务器上;对于传统项目可能会单独搭建
- 第一步,打开Ubuntu Software下载VSCode。(so easy)官网地址:https://code.visualstudio.
- 本文实例为大家分享了convinientbanner顶部广告轮播控件的具体代码,供大家参考,具体内容如下gradle中添加compile &
- C#的多态性:我的理解是:同一个操作,作用于不同的对象时,会有不同的结果,即同一个方法根据需要,作用于不同的对象时,会有不同的实现。C#的多
- Android 重写ViewGroup 分析onMeasure()和onLayout()方法在继承ViewGroup类时,需要重写两个方法,
- DatagramSocket只允许数据报发送给指定的目标地址,而MulticastSocket可以将数据报以广播的方式发送至多个客户端。其主
- 1. 为什么要进行参数校验在后端进行工作时,需要接收前端传来的数据去数据库查询,但是如果有些数据过于离谱,我们就可以直接把它pass掉,不让
- 1.问题描述使用post方法调用上级联网厂家接口,返回http状态码415,返回信息Content type ‘appl
- 一、简介Android的消息机制主要是指Handler的运行机制,那么什么是Handler的运行机制那?通俗的来讲就是,使用Handler将
- 在 C 语言中,如果发生错误,上级函数要进行出错处理,层层上传,容易造成过多的出错处理代码,并且传递的效率比较低下。C++ 中的异常C++
- C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解。还有托管堆,栈,ref,out等等概念也是每个C#程序员
- 即只能在组件布局代码后,或者在组件的前面添加注释。#注释格式:Android的XML文件注释一般采用 <!--注释内容 -->的