2012-02-10 8 views
0

OSX上のiOSシミュレータの画面を削りたいです。 iOS SimulatorでロードしたUI画面のテキストを取り込んで、それをテキストファイルに出力して、さらにテキストを操作できるようにしたいと考えています。これは可能ですか?あなたの誰かがこれまでに似たようなことを試してみましたかAppleScriptでこれを行いたいと思います。AppleScriptスクラップiOSシミュレータ

AppleScriptを選択した理由は私のチームが既にAppleScriptでスクリプト化されたオートメーションタスクをたくさん持っているため、その一部をリサイクルすることができるはずです。それは、私が見たOO言語とはかなり異なっているObjective-Cの経験がなく、私は学ぶ時間がありません。このツールは今後2週間以内に稼働する必要があります。

これは可能ですか?
正しい方向のヘルプ\ポインタがあれば幸いです。

+0

2週間以内にはできませんが、私はこれについて何も見ていないので、2週間以上かかるあなた自身を開発しなければなりません。 –

答えて

0

これは、applescriptでguiスクリプトを使用すると簡単です。難しい部分は、ui要素への参照を見つけることです...しかし、UI Browserのようなツールを使うのは難しくありません。私はiOSシミュレータを実行しませんが、guiスクリプトを使ってアプリケーションのフロントウインドウから物事を得ることができるので、シミュレータウィンドウはまったく違うとは思いません。

たとえば、私はこのサファリウィンドウを見ています。このウィンドウからテキストを取得できますか?確かに...私はGUIテキストを使用してURLテキストを取得したいとしましょう。私はそこのGUIスクリプティングに関するいくつかのトリッキーなものだが、あなたはそれを正しく使用している場合、それは問題になることはありません

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 

...これを使用することができます。このテキストは、サファリウィンドウからこのテキストを掻き取るために2分の時間がかかりました。最も難しいのは、textfieldReferenceを取得することでした。

注記:GUIスクリプトを使用するには、ユニバーサルアクセス設定パネルで「補助デバイスへのアクセスを有効にする」を有効にする必要があります。

次の部分は、テキスト項目区切り文字やその他のリンスクリプトツールを使用して、簡単にAppleScriptで行うことができるテキストを操作しています。だから、全体的に私の仕事はシンプルだし、必要なスキルはそれほど高くはない。

+0

私はUIBrowserツールを見て、それは私にアクセシビリティインスペクターより多くの情報を与えます。 AppleScriptに関する質問がありますが、コンパイルされても実行されません。エラーが表示されます。システムイベントにエラーが発生しました。プロセス1のウィンドウ1のツールバー1のグループ3を取得できません。無効なインデックスです。 "プロセス「Safari」のウィンドウ1のツールバー1のグループ3からの数値-1719何が問題なのですか?それは動作していることを確認するのは素晴らしいことです。実際にコードしています – user1202167

+0

OSXで "グループ3"を "グループ2"に変更していますが、私はあなたのサファリのテキストをどのように持ち上げているのかも見ています。今、異なるボタン、テキスト、タブなどがあれば、画面のすべてのテキストをどのように持ち上げるのだろうかと思っています。画面は同じ項目で構成されていないため、個々の画面をすべて別々にハードコードする必要はありませんUI要素。スクリプトでUI内のさまざまな項目を検出してすべて印刷できるようにします。 – user1202167

+0

ウィンドウのUI要素をすべて取得するプログラム的な方法を見つける必要があります。次に、リストをループし、要素のクラスをチェックし、yテキストフィールドや他のテキストを含む要素を見つけたら、その値を取得します。私は前にこのタイプのコードを見てきましたので、あなたはそれをgoogleする必要があります。 – regulus6633

関連する問題