蘋果宣布,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可以讓原本會拋出棧溢出異常的代碼運行。