uiautomator2 について
uiautomator2 Python パッケージの `u2cli` で Android デバイスを自動操作するスキルです。画面の確認、アプリ操作、システム操作が必要なユーザー向けに、コマンドラインでのセレクター操作、画面確認、アプリ管理を提供します。
主な機能
- 01UI 階層とデバイス情報の確認
- 02スクリーンショットのローカル保存
- 03アプリの起動・停止・管理
- 04座標やセレクターによる画面操作
- 05テキスト入力とスワイプ・スクロール
- 06デバイスでのシェルコマンド実行
活用シーン
- 01画面を確認して要素を特定
- 02アプリを起動してフォームに入力
- 03アプリのインストールやデータ消去
- 04URL を開く、またはシステム UI を操作
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ openatx/ uiautomator2 --skill uiautomator2インストール後、Claude Code で/uiautomator2を入力して読み込まれたか確認します。
詳細
uiautomator2
このスキルでは、uiautomator2 Python パッケージが提供する u2cli を使用して、Android デバイスを自動化できます。
一般的な使い方
u2cli <command> [args]を使用してコマンドを実行します。- Android デバイスが複数接続されている場合は、
u2cli -s <serial> <command> [args]を使用します。 - 以下の例では
<command> [args]のみを示しています。実行時は先頭にu2cliを付けてください。
コマンド
デバイスコマンド
dump-hierarchy:分析と要素の選択のために、現在の UI 階層をダンプします。まずはデフォルトの出力を使ってください。u2cli は返す前に出力を圧縮するため、通常はこれで十分であり、たとえばdump-hierarchy | grep -i "keyword"のようにgrepと組み合わせて使用できます。完全な非圧縮の階層が明示的に必要な場合に限り、dump-hierarchy --rawを使用してください。screenshot:現在の画面をキャプチャし、ローカルファイルに保存します。出力はスクリーンショットのファイルパスとサイズです。例:screenshot /tmp/screenshot.jpg。app-current:現在フォアグラウンドにあるアプリのパッケージ名とアクティビティを取得します。device-info:デバイス情報を表示します。window-size:画面ウィンドウのサイズを表示します。shell:デバイス上でシェルコマンドを実行します。コマンドのタイムアウトを設定するには、--timeout <seconds>を使用します。例:shell "pm list packages"。
アプリコマンド
app-start:パッケージ名でアプリを起動します。オプション:--activity <activity>、--wait、--stop。例:app-start com.android.settings --activity .Settings --wait。app-list:インストール済みパッケージを一覧表示します。app-stop:パッケージ名でアプリを停止します。例:app-stop com.example.app。app-install:APK をインストールします。例:app-install ./app-debug.apk。app-uninstall:パッケージ名でアプリをアンインストールします。例:app-uninstall com.example.app。app-clear:パッケージ名でアプリのデータを消去します。例:app-clear com.example.app。
入力コマンド
press:ハードウェアキーまたは Android キーを押します。例:press home。send-keys:フォーカスされている入力欄にテキストを入力します。デフォルトでは入力前に内容を消去します。既存のテキストを保持するには--no-clearを使用します。例:send-keys "hello world"。clear-text:フォーカスされている入力欄のテキストを消去します。例:clear-text。click:座標またはセレクターを指定してクリックします。座標にはX Yを使用するか、--text、--resource-id、--description、--class-nameなどのセレクターオプションを使用します。例:click 500 1200、比率の例:click 0.5 0.5、セレクターの例:click --text Gmail。double-click:座標を指定してダブルクリックします。タップ間の遅延には--duration <seconds>を指定できます。このコマンドではX Yの指定が必須です。セレクターオプションはサポートされていません。例:double-click 500 1200、比率の例:double-click 0.5 0.5。long-click:座標またはセレクターを指定して長押しします。オプション:--duration <seconds>、--timeout <seconds>。例:long-click 500 1200、比率の例:long-click 0.5 0.5、セレクターの例:long-click --text Gmail。swipe:ある座標から別の座標へスワイプします。引数はFX FY TX TYです。オプション:--duration <seconds>、--steps <number>、--scale <number>。例:swipe 500 1800 500 400 --duration 0.3、比率の例:swipe 0.5 0.8 0.5 0.2 --duration 0.3。drag:ある座標から別の座標へドラッグします。引数はSX SY EX EYです。オプション:--duration <seconds>。例:drag 300 1200 800 1200、比率の例:drag 0.3 0.5 0.8 0.5。
セレクターコマンド
exists:セレクターが存在するか確認します。オプション:--timeout <seconds>とセレクターオプション。例:exists --text Gmail --timeout 3。wait:セレクターが表示されるまで待機します。消えるまで待機するには--goneを使用します。オプション:--timeout <seconds>とセレクターオプション。例:wait --text Gmail --timeout 10。消えるまで待機する例:wait --text Loading --gone --timeout 10。scroll:セレクターをスクロールします。オプション:--direction vert|horiz、--action forward|backward|toEnd|toBeginning、--max-swipes <number>、--to-text <text>とセレクターオプション。例:scroll --scrollable --direction vert --action forward。テキストまでスクロールする例:scroll --scrollable --to-text Settings。
システム UI コマンド
open-notification:通知シェードを開きます。open-quick-settings:クイック設定を開きます。open-url:デバイスで URL を開きます。例:open-url https://example.com。
共通セレクターオプション
click、long-click、exists、wait、scroll などのセレクターベースのコマンドで、これらのオプションを使用します。
- テキストセレクター:
--text <text>、--text-contains <text>、--text-matches <regex>、--text-starts-with <text>。 - 説明セレクター:
--description <text>、--description-contains <text>。 - リソースおよびクラスのセレクター:
--resource-id <id>、--class-name <class>、--package <package>。 - 状態セレクター:
--selected、--focused、--enabled、--scrollable、--clickable、--checked、--checkable。 - 位置セレクター:
--instance <number>、--index <number>。 - 子セレクター:
--child KEY=VALUE [KEY=VALUE ...]または--child-text、--child-resource-id、--child-class-name、--child-clickable、--child-indexなどの子セレクター専用オプションを使用して、子セレクターレベルを追加します。例:click --resource-id com.example:id/list --child text=OK。
コメント
Markdown 対応