2012-02-10 25 views
0

我想在OSX上刮iOS模擬器的屏幕。我希望能夠將我在iOS Simulator中加載的UI屏幕文本輸出到文本文件中,以便我可以進一步處理文本。這可能嗎?你有沒有嘗試過類似的東西?我想在AppleScript中做到這一點。AppleScript刮iOS模擬器

AppleScript選擇的原因是我的團隊已經在AppleScript中編寫了大量的自動化任務,我應該可以利用它來回收它的一部分。這一點以及我沒有任何Objective-C體驗,這與我見過的OO語言看起來有很大不同,我沒有時間去學習。此工具需要在未來2周內啓動並運行。

這是可能的嗎?
任何幫助\指針在正確的方向將不勝感激。

+0

這是不可能在2個星期內,我沒有看到任何東西,所以你將不得不自己開發一些東西,這將會超過2周。 – 2012-02-10 14:07:23

回答

0

這是一個簡單的工作,如果你在applescript中使用gui腳本。困難的部分是找到對ui元素的引用......但是,如果使用像UI Browser這樣的工具,這並不困難。我不運行iOS模擬器,但可以使用gui腳本從任何應用程序的前窗獲取內容,所以我不認爲模擬器窗口是任何不同的。

例如,我正在看這個safari窗口。我能從這個窗口得到一些文字嗎?當然...假設我想使用gui腳本來獲取url文本。我可以用這個...

tell application "Safari" to activate 
delay 0.2 

tell application "System Events" 
    tell process "Safari" 
     set textfieldReference to text field 1 of splitter group 1 of group 3 of tool bar 1 of window 1 
     set urlText to value of textfieldReference 
    end tell 
end tell 

有一些技巧性的東西有關GUI的腳本,但如果你正確地使用它,然後它不應該是一個問題。請注意,從Safari瀏覽器窗口中刪除此文本的代碼需要2分鐘才能完成。最困難的部分是獲取textfieldReference。

注意:要使gui腳本正常工作,您必須在通用訪問首選項窗格中啓用「爲輔助設備啓用訪問」。

下一部分是使用文本項目分隔符和其他applescript工具操縱文本,您可以在applescript中輕鬆完成該操作。所以總體而言,這項工作對我來說似乎很簡單,而所需的技能並不太多。

+0

我看着UIBrowser工具,它給了我比輔助檢查器更多的信息。我有關於AppleScript的問題,它編譯但不運行我得到「錯誤」系統事件有一個錯誤:無法獲得進程\「Safari \」的窗口1的工具欄1的組3。無效的索引「。從進程」Safari「的窗口1的工具欄1的組3中的編號-1719任何想法是什麼錯誤?很高興看到它的工作和內容從屏幕上自己刮掉似乎很少代碼的確如此 – user1202167 2012-02-11 16:16:02

+0

我在OSX上將「group 3」改成了「group 2」,我也看到你是如何解除safari的文本的,我在iOS模擬器上嘗試過,它的工作原理完全一樣。現在想知道如何解除屏幕上的所有文本,如果有不同的按鈕,文本,標籤等。沒有屏幕將包含相同的項目,我不想硬編碼每個單獨的屏幕與所有不同UI元素,我希望腳本能夠檢測UI中的不同項目並將其全部打印出來 – user1202167 2012-02-11 19:10:33

+0

您必須找到一種編程方法來獲取窗口的所有UI元素,並將其列入列表中。然後你遍歷列表,檢查元素的類,以及何時y ou找到一個文本字段或其他包含元素的文本,然後您可以獲得它的價值。我以前見過這種類型的代碼,所以你必須爲它的谷歌。 – regulus6633 2012-02-11 19:49:10