[Mac] 使用 Script Debugger 除錯 AppleScript

[Mac] 使用 Script Debugger 除錯 AppleScript

最近剛用 AppleScript 自動以 SecurID 密碼登入 Junos Pulse

不過寫的過程中,就覺得 debug 非常的困難,

想知道變數的值,只能在中間 tell Finder 顯示一個 dialog,

有時又莫名其妙的沒有執行到預期的地方,

真的非常困擾…

 

看網路上大家的留言,大部分是推薦 Script Debugger

這是一個要付費的工具,不過可以試用 20 天,

就先拿來 debug 看看我的 AppleScript 吧~

 

1. 下載 Script Debugger

到 Script Debugger 的下載頁去下載安裝~

安裝好後,可以看一下 Getting Started 的文件,

不過我很懶,之後有空再看 XD

Screen Shot 2015-08-30 at 11.56.08 PM  

 

2. 用 Script Debugger 找出程式裡的 Runtime Error

開啟 Script Debugger 後,用 File > Open 開啟要 debug 的 AppleScript,

同時把 Script > Enable Debugging 打勾,

這樣才能用到 breakpoint, step over, step into 這些功能:

Screen Shot 2015-08-31 at 3.38.55 PM

 

上面的程式裡其實有一個錯誤,但原本用 Mac 內建的 Script Editor 執行時看不出來…

點 Script Debugger 上面的 Execute 執行看看…

喔~抓到了一個 AppleScript Runtime Error!

說 “done” 這個變數沒有定義:

Screen Shot 2015-08-31 at 3.39.24 PM

 

按下 Cancel 後,回到程式碼編輯畫面,

Script Debugger 把錯誤的那一行用橘色標出來了,

檢查一下 code… 原來是把 isdone 變數誤打為 done 了,

修正後,就不會再出現 Runtime error 了:

Screen Shot 2015-08-31 at 3.40.24 PM

 

3. 單步執行 AppleScript 與檢視變數

另一種常見的場景是需要單步執行,一方面檢視程式的流程,

一方面檢視變數的值是否符合預期~

可以用 Step Over 或 Step Into 開始一步步執行,

或是在某行程式上,按右鍵 > Execute To Here,

讓程式執行到這一行後,暫停下來:

Screen Shot 2015-08-31 at 3.44.43 PM    

 

這時,像我們想看一下 connections 裡面究竟有什麼東西,

可以選取選單列 > Window > Inspectors > Show Inspectors,

就會秀出 Inspector 視窗~

在 Tell Context 這一區,就可以看到目前有的區域變數,

像我選取了 connections 下的 connection 1,

可以看到它有的屬性值,像 connectionStatus 目前是 Disconnected~

(缺點是這個視窗好像不能拉寬… 真奇怪)

Screen Shot 2015-08-31 at 6.44.55 PM  

 

同時,也可以按工具列上的 Step In 和 Step Over 來單步執行,

就能確認程式的流程是否正確了~

 

整體來說,Script Debugger 算是蠻好用的,

不過如果是免費的話就更好了呀~~^^

 

 

(本頁面已被瀏覽過 467 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料