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テーマを使ってたのですが、これだとダメでした)。
全般的に使いづらい印象なので、スクリプト自体は別のエディタで書いて、コピペするなりしたほうが作業が捗ると思います。
関連記事
-
-
Xcode8で余計なログを抑制する
Xcode8に更新してから、妙にログが増えたので、NSLogで明示したのと実行時エラー以外のログを吐
-
-
Bitbucket課題の記法サンプル
Bitbucketの課題、およびwikiで利用できる記法についての記事です。 利用できる記法に
-
-
UIAlertControllerの取り扱い
旧聞ですが日本語版のStackOverflowが始動したようですね。 個人的な印象は「フィルタされ
-
-
AdMob組み込み覚書
書籍ではコレがかなり参考になるのでご紹介。 表題の通りで、組み込みで要注意っぽい部分だけを
-
-
UISegmentedControlに見栄え良く背景色を設定する
UISegmentedControlをiOS7で使おうとすると、基本の背景色が「透明」になりますが、
-
-
Xcode10からのimage literal / color literalの指定方法
アセットにあるUIImageの直接指定が可能なImage literalですが、気がついたらアセット
-
-
Xcode5.1のInterfaceBuilderにおける地味な変更点
iOS7.1に合わせてXcode5.1がリリースされました Xcode Release N
-
-
iOSシミュレータの帯域制限をテストする
iOSシミュレータで通信帯域制限をテストしたいと思ったんですが、Xcode8からXcode7.xとは
-
-
iPadのUIModalPresentationFormSheetでキーボードが閉じない
iPadでUIModalPresentationFormSheet(全画面ではなく、中央にフロートし
-
-
CoreDataのソートとsectionNameKeyPathの関係
CoreDataをフェッチするときに、indexPathのsectionにできるsectionNam
