protractor是一个非常优秀的测试框架,跨平台,跨浏览器,UI测试,接口测试,单元测试,都可以用它来完成。

protractor现在已经到了4.0.11,我觉得有必要梳理一下各个版本新增的功能以及各种依赖的变化。一方面可以了解protractor提供的新功能有哪些,及时使用新功能,减少工作量。另一方面也可以避免一些因配置环境导致的问题。

Protractor Versions(0.x 为原始开发版本)


0.7.0

  • 升级至 Selenium 2.24
  • 将protractor设为全局变量,不再需要require(‘protractor’);

0.8.0

  • 升级至 Selenium 2.25
  • 支持debug模式
  • protractor可以使用webdriver中所有的类

0.9.0

  • findElement可以和protractor定位器一起使用。
  • 提升命令行界面,可以传送参数–spec 来指定运行的测试脚本。
  • 添加ignoreSynchronization属性,可以关闭protractor等待Angular的动作。

    这里是一个坑,在执行case之前必须要设置这个属性。
    beforeEach(function () {browser.ignoreSynchronization = true;});
    否则就会报错:’angular can not be found on the page’


0.10.0

  • 为waitForAngular超时错误添加新的错误信息。将默认超时时间从100秒改为11秒。

    如果需要修改默认超时时间,需要driver.manage().timeouts().setScriptTimeout()

  • 添加登录的例子

  • 添加onPrepare回调函数。

    onPrepare是一个很实用的功能,这样就可以在执行测试用例之前完成一些准备工作。比如:登录,设置参数等待。


0.11.0

  • 允许直接传参给测试用例。添加参数对象params,它可以通过命令行直接将参数传递给protractor。

    example: –params.login.user ‘Joe’ –params.login.password ‘abc’

    -添加元素定位符:$和 $$

    $=element(by.css());
    $$=element.all(by.css());


0.12.0

  • 声明了一些全局的变量: $,$$,element,by,browser.现在这些变量可以直接使用,无需声明或者引用。

0.12.1

  • 优化expect的错误信息内容。
  • 优化testForAngular和waitForAngular的错误信息内容。

0.13.0

  • element.all添加了first和last方法。
  • 添加chromeOnly配置选项。选择这个设置后,可以直接把指令传给chromedriver,不再经过selenium。
  • IE可以获取当前页面的URL地址。
  • 为bad jar path添加错误信息。
  • 添加自定义定位器的功能。
  • 升级至angular 1.2。

0.14.0

  • 重写了安装运行selenium和webdriver的脚本。

    webdriver-manager update 将下载最新的webdriver,包括IE driver。
    webdriver-manager start 将启动selenium-standalone-server。

  • 如果未指定selenium和webdriver,将使用默认路径。

  • config.js中的所有路径都是相对于自身的相对路径。

0.15.0

  • 升级依赖包minijasminenode至0.2.6。

    升级后框架能够识别iit和ddescribe。通过这两个可以控制测试用例的运行。

  • 默认情况下将webdriver信息从堆栈信息中移除来提高可读性。
  • by.model可用,可以定位选择菜单和textareas。
  • ignoreSynchronization可以影响browser.get。
  • element.all声明了each方法。

    element.all(by.model(‘foo’)).each(function(webElement) {
    // Do stuff with webElement.
    });

  • by.repeat支持多个ng-repeat(ng-repeat-start,ng-repeat-end)。

0.16.1

  • beat版本支持使用Mocha作为测试框架。
  • webdriver-manager添加命令指定selenium 端口。

    $ webdriver-manager start –seleniumPort 4443


0.17.0

-支持元素链定位元素,在最后一个元素调用其他方法之前,任何方法都不会执行。

var elem = element(by.id(‘outer’)).element(by.css(‘inner’));

-添加回调函数onCleanUp能够在所有用例执行完后被触发。

-为element.all添加map()方法。

-允许使用coffeescript的配置文件。


0.18.0

-添加两个定位器:by.buttonText, by.partialButtonText

-允许使用livescript配置文件

-增加browser.get()的超时时间。


0.19.0

-允许多个runner。

-添加removeMockModule方法

-添加转换器用于cucumber.js


0.20.0

-升级selenium至2.40.0和下载地址

-允许自定义jasmine匹配器

-允许在cucumber测试中使用多个标签。


0.21.0

-控制台输出浏览器汇总信息

-允许定义多个测试集并通过命令行分开运行

-顺序展示错误的堆栈信息和方法失败的细节

Protractor版本大事记相关推荐

  1. 拉勾教育 | Java 性能优化实战 21 讲

    开篇词 开篇词 | Java 性能优化,是进阶高级架构师的炼金石 你好,我是李国.作为<Java 性能优化与面试 21 讲>这个课程的作者,我先来简单介绍下自己. 我曾任京东金融.陌陌科技 ...

  2. Protractor

    官网地址:http://www.protractortest.org/ 1. 预备环境 protractor 是一个 Node.js 程序,为了运行 protractor ,你首先需要 Node 环境 ...

  3. 2016年Kubernetes(k8s)大事记

    34次发布 , 18,557次commits,175家企业参与,705个贡献者,2,552,778行Go代码 2016年是Kubernetes快速发展的一年,在社区中,从对它疑虑到逐渐认可再到追捧,转 ...

  4. 开源Odoo ERP13.2版本模块功能

    开源Odoo ERP采用开源商业模式为核心运营,欧度软件江苏有限公司是Odoo在中国国内的官方合作伙伴.以用户为中心,系统包含客户关系管理,采购管理,销售管理,库存管理,生产管理,财务管理,供应链管理 ...

  5. 2023年4月国产数据库大事记-墨天轮

    本文为墨天轮社区整理的2023年4月国产数据库大事件和重要产品发布消息. 目录 4月国产数据库大事记 TOP10 4月国产数据库大事记(时间线) 产品/版本发布 兼容认证 代表厂商大事记 厂商活动 相 ...

  6. 2021年6月国产数据库大事记

    本文整理了2021年6月国产数据库大事件和重要产品发布消息. 6月国产数据库大事记 6月1日,在数据库 OceanBase3.0 峰会上,OceanBase CEO 杨冰宣布首个时序数据库产品 Cer ...

  7. Protractor 环境搭建

    安装 node.js 安装完后检查node 版本: node –version   确保要安装的protractor 和 node 版本的兼容性. (protractor 4 和nodejs 4以上的 ...

  8. Node.js+Protractor+vscode搭建测试环境(1)

    1.protractor简介 官网地址:http://www.protractortest.org/ Protractor是一个end-to-end的测试框架,从网络上得到的答案是Protractor ...

  9. Web自动化测试-Protractor基础(一)

    官方原文: Protractor is an end-to-end test framework for Angular and AngularJS applications. Protractor ...

最新文章

  1. Windows 下的 7 种 DLL 劫持技术
  2. matlab读取.xyz文件及任意有间隔符数据
  3. 在Rancher 1.6上部署Traefik负载均衡器
  4. 科大星云诗社动态20211205
  5. 【深度学习】实战深度学习检测疟疾
  6. php json无法解析中文,json 无法解析解决方法
  7. Linux_linux常用工具---闲杂篇(除了vim, 还有哪些常用的牛逼的编辑器, 并能够横向对比编辑器之间的区别和优缺点.)
  8. Python运算符is与==的区别
  9. oracle 和mysql有什么区别_mysql和oracle的区别有哪些
  10. 信息化集成,路在何方?
  11. 04.数据分析之pillow与matplotlib
  12. Flink案例代码,面试题
  13. PYTORCH中torch.mean(),dim=0,dim=1分别代表什么
  14. PUN 2 菜鸟养成记 2主服务
  15. Sqldbx连接OracleX64位
  16. sitemap生成器-网站sitemap生成器-免费sitemap自动生成
  17. 初学微信云开发,云函数实现两数相加
  18. Linux-DNS服务器搭建
  19. 【buuctf】cscctf_2019_qual_babyheap
  20. KEPServerEX助力能源巨擎实现工业4.0

热门文章

  1. HiAGM模型源码测试【原始数据集+中文数据集】
  2. 基尼系数,省级层面、地级市层面、Dagum1997方法,整理好的面板数据
  3. CODING 敏捷实战系列加餐课:CODING 做敏捷这一年 - 理解一站式 DevOps 产品思想
  4. initramfs/initrd
  5. Linux中lvdisplay命令的用法,lvdisplay
  6. http/2与http/1的区别
  7. python 实现udp通信
  8. 第二十三章 类关键字 - Language
  9. IDEA修改默认的新建项目路径
  10. 常见的NoSQL数据库有哪些