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テーマを使ってたのですが、これだとダメでした)。
全般的に使いづらい印象なので、スクリプト自体は別のエディタで書いて、コピペするなりしたほうが作業が捗ると思います。
関連記事
-
-
UIButtonのタイトル変更時のチラつき抑制
久しぶりにXcode+Objective-Cでアプリを作っていたら、UIButtonのタイトルを動的
-
-
User Defined Runtime Attributeについての覚書
UILabelに上下左右のパディングをつける方法を探して、結局「自分で以下のようなメソッドを持った拡
-
-
UIButtonのappearanceで派生する色設定
以下のコードでUIButtonのappearanceでBackgroundColorの設定をすると、
-
-
iOS6時代のアプリのiOS7への対応
やや古い情報になるが、iOS7対応に関して自分がやったことの覚え書き。いろんな所から拾って来た情
-
-
コードでiPhone6 Plusを識別する簡単な方法
表題の通り、コードでiPhone6 Plusを識別する簡単な方法です。 iPhone6 Plu
-
-
UIActionSheetが消えるときにキーボード表示/非表示通知が来る
UITextViewやUITextField編集中にアクションシートを表示すると、アクションシート
-
-
UISplitViewControllerの仕切り線の色を設定
UISplitViewControllerで、iPadを横向き(Landscape)にしたときの2つ
-
-
bitbucketをXcode5で使用する
bitbucketは無償で5人までの少人数チーム用のクローズド(非公開)リポジトリを作成できるため、
-
-
RealmのList
とArray の相互変換によるマップ Realm+ObjectMapperを使って、RealmのオブジェクトをJSON変換してたのですが
