苹果宣布,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