苹果宣布,Safari 10.0 支持 WebDriver,并提供了 Web Inspector 和一个新的 JavaScript 性能分析器。
Safari 是最晚一个支持这个 Web 应用程序自动测试工具的主流浏览器,微软在 2015 年就宣布在Edge 浏览器中支持WebDriver。
在 Safari 的更新说明中,苹果指出,Safari 包含的safari driver
将提供“一套接口,用于操作 DOM 元素,控制浏览器的行为”,在使用/usr/bin/safaridriver
启动服务器以前,开发人员应该在 Develop 菜单中启用 Remote Automation。
David Burns 是 Mozilla 工程部的经理,他在 The Automated Tester 上发表了一篇博文,阐述了 safari driver
对于 Selenium 的重要性。Burns 使用了最近 Firefox 47 的例子,“在 Firefox 47 中,Selenium 导致 Firefox 在启动时崩溃。Mozilla 的 WebDriver 实现 Marionette 和 GeckoDriver 永远都不会遇到这个问题,因为像这样的测试失败和崩溃会导致补丁还原,终端用户永远都不会看到。”
Safari 10 新增的 Web Inspector 特性包含新的时间线窗口,可以帮助 Web 开发人员可视化应用程序的内存使用情况,并随着时间推移绘制堆分配快照,帮助开发人员识别可以优化内存性能的地方。
苹果还承诺通过新的 JavaScript 性能分析器提供“更高的性能”,该分析器会在禁用调式工具的情况下以很高的精度对正在运行的代码进行抽样。
10.0 版本还有一个显著的特性,就是在 OSX 和 iOS 上“完全支持”ES6,将 Proper Tail Calls(PTC)带到了 Safari。Michael Saboff 是一名在苹果从事 WebKit 开发的软件工程师,他在博文“ WebKit 中的 ECMAScript 6 Proper Tail Calls ”中详细阐述了 ECMAScript 6 的重要性:
该特性的加入是为了便于使用递归编程模式,既包括直接递归,也包括间接递归。其他各种设计模式也可以从 PTC 受益,比如对于封装了某项功能的代码,封装代码直接返回它所封装的功能的结果。使用 PTC 可以减少运行代码所需的内存量。在深层递归代码中,PTC 可以让原本会抛出栈溢出异常的代码运行。
查看英文原文: Safari 10 Ships WebDriver
评论