UIAutomation関連覚書
公開日:
:
最終更新日:2015/04/17
Tips UIAutomation
割りと忘れがちなので、自分用備忘録を兼ねて、UIAutomationに関連するtips的なものをまとめてみました。
長くなるので部分はまとめる
// --- よく使うものはまとめる var target = UIATarget.localTarget(); var app = target.frontMostApp();
ログ関連
// スクリプト実行時のログは逐次吐かれるが
// UIALogger.logStartからUIALogger.logPass(かlogFail)までの間は、ログをまとめてくれるので見やすくなる
UIALogger.logStart("Script start");
// (ここに操作が入る)
UIALogger.logPass("Script end");
// スクリーンショットを取る
target.captureScreenWithName("screenshot2");
スクリーンショットの出力先は、Instrumentsの右下の”Dispray Settings”タブから設定します

フォルダの設定もちょっとわかりにくいです。フォルダにジャンプするには、フォルダ名の右にある右矢印ボタンをクリック。

スクリーンショットを取るには、左上の記録(赤い丸)ボタンを使って行います。スクリプト単位での実行中(スクリプトエディタの下にある再生ボタン)にはスクリーンショットの撮影は無視されます(ハマりました)。
デバイス別処理関連
// --- iPhoneかどうかチェック。実機では未確認 var isPhone = target.model().match(/iPhone/);
// Popoverを消す。iPadの場合の操作なので、前述のisPhoneを使ったりして条件制御する target.frontMostApp().mainWindow().popover().dismiss();
操作からスクリプトを作成する
スクリプトエディタ(下側セクションのAutomation>Script)を立ち上げて、下の記録ボタンを押すと、アプリケーションが立ち上がって操作を逐次スクリプト化して記録してくれます。
エディタのカーソル位置にスクリプトを挿入する形なので、部分部分で記録、編集・・・とできます。
作成されたスクリプトは半完成状態で、ドロップダウンから幾つか候補が選べる(例えば「エレメント名」で指定するか、「配列添字」で指定するかetc)ようになっていて、矢印部分をクリックして選択、文字列部分をクリック(かダブルクリック)して確定。
スクリプトエディタはXcodeとテーマを共通で持っているものの、標準以外のテーマだと色が被って見難い場合があり難儀します(自分は黒地のtwiliteテーマを使ってたのですが、これだとダメでした)。
全般的に使いづらい印象なので、スクリプト自体は別のエディタで書いて、コピペするなりしたほうが作業が捗ると思います。
関連記事
-
-
UITableViewのヘッダに小文字を入れる
UITableViewのセクションヘッダをStoryboardでカスタマイズするという話題を以前掲載
-
-
UIActionSheetの文字がブレて多重表示される
UIActionsheetを使っていて、iOS7/iPadの組み合わせで起こる不具合らしき挙動が起こ
-
-
UIButtonのタイトル変更時のチラつき抑制
久しぶりにXcode+Objective-Cでアプリを作っていたら、UIButtonのタイトルを動的
-
-
Size ClassとUIViewController.view
タイトルの件でちょっとハマったことがある上に、特に日本語情報もStackOverflowからも情報が
-
-
ソースコードからStoryboardにアクセスする
複数のStoryboardを利用して、自分以外のStoryboardに遷移させるような展開をしたい場
-
-
メソッドの呼び出し元を調べる
特定のメソッドに関して、そのメソッドをコールしているメソッド群を調べるための手順。 (1)調べたい
-
-
StoryboardからPopoverを作っても位置合わせコードは必要
これだけだとわかりづらいんですが。 XcodeのStoryboardから、Segueを"Prese
-
-
UITableViewCellのロングタップ
UITableViewCellをロングタップしたときに、タップされたセルを認識しつつメニューを出した
-
-
NSStringのフォーマット書式
Appleのページになく、IEEEのprintfフォーマットのページにあるので、C言語と親しくしてな
-
-
iOSシミュレータの帯域制限をテストする
iOSシミュレータで通信帯域制限をテストしたいと思ったんですが、Xcode8からXcode7.xとは
