本人博客文章网址:https://www.peretang.com/basic-knowledge-of-selenium/


什么是Selenium

Selenium是一个自动化测试工具

是一组不同的工具

其支持在多个浏览器平台上执行测试

为什么需要Selenium

1. 使原本手动的测试变成自动化

2. 更容易完成频繁的回归测试

3. 更快速的反馈给开发人员与测试人员

4. 几乎无限次迭代的测试执行

5. 更有纪律的测试用例

6. 自动生成缺陷报告

7. 补充手动测试的遗漏

Selenium组件介绍

Selenium RC

以前最主要的项目, 目前已被弃用不再更新

其原理为使用一个RemoteControlServer作代理, 由其去操控真正的浏览器

Selenium WebDriver

由Selenium Rc与WebDriver的结合, 包括一个面向对象的API, 支持WebDriver API, 可使用其API直接调用浏览器上的API获取结果及对浏览器底层操作, 并可最大灵活的移植测试, 并可向Selenium RC兼容

WebDriver是一个用来进行复杂重复的Web自动化测试工具, 本是Selenium的竞争对手, 本意为提供更容易使用与更容易维护的API

Selenium IDE

用于构建测试脚本的设计工具, 其是一个FireFox浏览器的插件, 提供了一个易用的界面来开发自动化测试用例, 并拥有记录的功能, 可记录下用户的操作步骤, 并将其转化导出为不同编程语言的测试脚本

Selenium Grid

允许并行地运行测试, 即不同的测试可以在不同的远程机器上同是执行, 由于其使用了并行, 所以大大改进了执行测试所需的时间

SeleniumRC与SeleniumWebDriver

Selenium RC的缺点

不能处理键盘和鼠标事件

不能处理同源策略XSS/HTTP(S)

不能处理弹出框, 对话框, 基本身份验证, 自签名证书, 文件上传/下载

Selenium WebDriver的缺点

不支持并行, 但是可以使用Selenium Grid解决这个问题

对浏览器的支持不全

对不同浏览器的操作API不一致

两者的不同点

SeleniumWebDriver需要有API和浏览器的支持, SeleniumRC有统一的API, 但需要额外的代理操作服务器

SeleniumWebDriver可以通过HTMLunitDriver来模拟浏览器, 实现快速测试, SeleniumRC需要有真实的浏览器存在

参考

SeleniumHQ

Selenium基础知识的更多相关文章

  1. Selenium 基础知识

    被测产品是B/S 结构,那么推荐selenium selenium 并不是单纯的一个工具,他是一组工具的集合 1. selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器 ...

  2. Selenium基础知识(十)截屏

    自动化测试过程中,经常会用截图的方式,更直观的显示展示错误信息:selenium截图的三种方式: driver.get_screenshot_as_file(r'd:\selenium.png') # ...

  3. Selenium基础知识(九)验证码

    关于Selenium处理验证码总结下: 1.去掉验证码(这个为了测试,去掉可能性不大) 2.万能验证码(让开发给做一个万能验证码,可能性也不大) 3.OCR光学识别,python包Python-tes ...

  4. Selenium基础知识(八)文本域处理textarea

    textarea文本域selenium有时处理不了,但是我们可以采用迂回,解决这个问题 那么,我们用到了execute_script()方法来调用javascript来解决这个问题 这其中涉及DOM, ...

  5. Selenium基础知识(七)弹出框处理

    使用switch_to.alert方法来处理弹页面弹出的警告框 页面常见警告框种类:alert/confirm 确认框/prompt switch_to.alert().accept() switch ...

  6. Selenium基础知识(六)下拉列表定位

    1.下拉列表定位 要选择下拉列表中的元素,要先定位到,下拉列表元素,然后可以通过xpath去点击,表内内容 例如,百度搜索-->百度设置-->搜索设置-->选择下拉列表框内" ...

  7. Selenium基础知识(四)表单切换

    在测试过程中,经常会碰到frame和iframe,嵌套等情况 这种情况下直接通过id,name等等是无法定位到的 好在selenium替我们想到了这个问题switch_to方法解决问题 switch_ ...

  8. Selenium基础知识(三)元素判断

    一.由于有些页面加载完后,某些元素还没有加载,这样就会导致异常,脚本稳定性变差 为了解决这个问题,selenium提供了WebDriverWait以及implicitly_wait()等待 WebDr ...

  9. Selenium基础知识(二)鼠标操作

    一.鼠标操作 这个需要使用webdriver下的ActionChains类,这个类是操作鼠标操作的: from selenium.webdriver import ActionChains 鼠标操作可 ...

随机推荐

  1. 浩哥解析MyBatis源码(十一)——Parsing解析模块之通用标记解析器(GenericTokenParser)与标记处理器(TokenHandler)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6724223.html 1.回顾 上面的几篇解析了类型模块,在MyBatis中类型模块包含的 ...

  2. T-SQL语句中的转换函数

    书接上回 前面讲了聚合函数.字符串函数 今天一起来看下转换函数 首先是 值类型转换 ),degree) 在C#里面是convert,现在在SQL中也是他,convert(转换类型,被转换列)from ...

  3. Linux-配置vim开发环境

    vim是一个类似于vi的著名的功能强大.高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性.vim是纯粹的自由软件. 为了满足使用者的要求,将vim界面配置为自己想要的界面类型也变得流行起来. ...

  4. java抽象类和抽象方法之间的关系

    抽象类和抽象方法之间的关系有抽象方法的类,一定是抽象类:抽象类不一定有抽象方法当子类继承抽象类时,必须要将抽象类中的抽象方法全部实现(或者称为重写),否则子类依然是抽象类因为子类是继承父类全部内容,所 ...

  5. java集合的操作(set,Iterator)

    集合的操作 Iterator.Collection.Set和HashSet关系 Iterator<——Collection<——Set<——HashSet Iterator中的方法: ...

  6. 关于用jQuery的animate方法实现的动画在IE中失效的原因以及解决方法

    这几天在学jQuery,本身还只是一个新手,写了一个简单的动画--圆形头像的缩放.本身是用Firefox进行调试的,一切进行的很顺利,缩放可以按照预期执行,结果拿到IE上去之后,发现缩放动画失效了.后 ...

  7. bootstrap loadStep流程节点动态显示

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. java实现对服务器的自动巡检邮件通知

    1.需求 之前一直是手动的巡检,然后贴图,最近服务器数量大增,有点忙不过来了.因为一直用的java,对shell脚本不是特别了解,所以这次用java写了个小项目,实现对多服务器,多任务的巡检,巡检结果 ...

  9. Hashtable、ConcurrentHashMap源码分析

    Hashtable.ConcurrentHashMap源码分析 为什么把这两个数据结构对比分析呢,相信大家都明白.首先二者都是线程安全的,但是二者保证线程安全的方式却是不同的.废话不多说了,从源码的角 ...

  10. ubuntu系统搭建以太坊私有链

    1.安装curl.git apt-get update apt-get install git apt-get install curl 2.安装go curl -O https://storage. ...