やったというか、ただ公式サイトのサンプルコードをコピペしただけですが...
今回はこのサンプルアプリについているボタンを押すところをAppiumでやってみます。
サンプルアプリ(API Demos)を起動して、Views → Buttons と遷移させると表示されるボタンです。
初心者の自分にとってはとても大変でした。
Windows 10環境
Android 5.1 (実機)
appium 1.15.1
1.概要
大まかには、この画面やボタンの情報を取得して、それを元に前回のjavascriptのコードに反映させるという流れとなります。
2.画面の情報取得( appActivity )
- const opts = {
- path: '/wd/hub',
- port: 4723,
- capabilities: {
- platformName: "Android",
- platformVersion: "5.1",
- deviceName: "002628105537",
- app: "C:/Users/XXXXX/Desktop/appium_test/ApiDemos-debug.apk",
- appPackage: "io.appium.android.apis",
- appActivity: ".view.TextFields", // ← ここに入れる情報
- automationName: "UiAutomator2"
- }
- };
実機の方でサンプルアプリを起動して、押下したいボタンの画面を表示しておき、
コマンドプロンプトで「adb shell」と打ち込みます。
コマンドプロンプトで「adb shell」と打ち込みます。
※adbコマンドが実行できない場合は、環境変数のpathに%ANDROID_HOME%\platform-toolsを追加するか、platform-toolsにcdで移動して、実行してください。
そのままコマンドプロンプトで下記のコマンドを打ち込みます。
- dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
参考にしたサイトはこちらです。
3.画面の情報取得( ボタンの情報)
3.1 uiautomatorviewerを起動
%ANDROID_HOME%\tools\binにある「uiautomatorviewer.bat」をダブルクリックします。※uiautomatorviewer.batが起動しない場合は、こちらが参考になるかもしれません。
3.2 uiautomatorviewerで情報を取得
起動したら、左上のボタンを押します。4.クリックの表現方法を調べる
Appiumのサイトでコマンドのページがあるので、そちらを参考にしました。「$('#SomeId').click();」
5.javascriptに反映
手順の2~4で調べた情報を元にjavascriptに反映します。
- // javascript
- const wdio = require("webdriverio");
- const assert = require("assert");
- const opts = {
- path: '/wd/hub',
- port: 4723,
- capabilities: {
- platformName: "Android",
- platformVersion: "5.1",
- deviceName: "002628105537",
- app: "C:/Users/XXXXX/Desktop/appium_test/ApiDemos-debug.apk", // ここは環境に合わせてください。
- appPackage: "io.appium.android.apis",
- appActivity: ".view.Buttons1", // 手順2で調べたものに書き換える
- automationName: "UiAutomator2"
- }
- };
- async function main () {
- const client = await wdio.remote(opts);
- const field = await client.$("android.widget.Button"); // 手順3で調べたものに書き換える
- await field.click(); // 手順4で調べたものに書き換える
- await client.deleteSession();
- }
- main();
5.結果
これで実行すると、ボタンが押されました。できた。
実行方法がわからない場合は、前回や 前々回の記事を参考にしてください。
0 件のコメント:
コメントを投稿