2020年6月22日月曜日

Appium 入門6 ( 電卓のボタン押す)

はじめに
Appiumを使って、電卓のボタンを押すところまでやってみました。
今までjavascriptでやってきたのですが、うまくできなかったために、javaに乗り換えました。

環境
OS : Windows 10
スマホ : emulator (Pixel3 API 26)
Android Studio : 3.6.3
Appium : 1.17.1
言語 : java

参考にしたサイト

https://www.swtestacademy.com/appium-tutorial/
↑ 細かく書かれており、とても参考になりました。

1.準備
appium等のインストールは完了した状態で実施しております。
まだの場合はAppium入門1 を参考に、 javascriptでサンプルコードが動作するところまで実施できるようにしてみてください。
2.intellij IDEA をインストール
下記のサイトから無料版(コミュニティ)の方をダウンロードします。  https://www.jetbrains.com/ja-jp/idea/download/#section=windows
3.dependencies.の設定
3-1. IntelliJ IDEAを起動する。
3-2.+ Create New Projectを押す。
3-3.Mavenを選択して、Nextボタンを押す

3-4.Nameに適当な名前を付けてFinishボタンを押す。
3-5.https://mvnrepository.com/ にアクセスする。
3-6.「io.appium」 で検索する。
java-client - 最新のバージョンを選択し、mavenというタブに表示されたxmlをコピーする。
 3-7.コピーしたものをintellj IDEAのpom.xmlにペーストする。
dependenciesというタグで囲む必要があります。
同じようにselenium-javaと, testngもコピペします。
最終的にはこんな感じになります。
 
	
    4.0.0

    org.example
    untitled
    1.0-SNAPSHOT

  
    
        
        
            io.appium
            java-client
            7.3.0
        

        
        
            org.seleniumhq.selenium
            selenium-java
            3.141.59
        

        
        
            org.testng
            testng
            7.1.0
            test
        

    
  
  
	
3-8. versionの数字が赤い場合は、下図の更新ボタンを押すか、intelljを再起動すると     読み込まれるようです。(この辺はちょっと怪しいです。) 
 
4.inspectorで情報取得
4-1. emulator を起動
4-2. 電卓アプリを起動
4-3. appiumを起動
4-4. uiautomatorviewerを起動
4-5. 電卓の1のボタンのresource-idを後で使います。
※uiautomatorviewerの使い方はこちらを参考にしてください。

5.emulatorの情報取得
5-1.emulatorを起動しておく
5-2.PCでコマンドプロンプトを起動する。
5-3.adb devices とコマンドプロンプトに打ち込んで実行する。
※adbコマンドが実行できない場合は、環境変数のpathに%ANDROID_HOME%\platform-toolsを追加するか、platform-toolsにcdで移動して、実行してください
5-4.表示された文字列を後で使います。

6.javaのコードを作成
6-1. intellJ IDEAで src - test - javaを右クリック
New - Java Class を追加 - 任意の名前でクラスを追加する。

6-2. ここまでで集めた情報を使って次のコードを書きます。
①~④のところに今まで集めた情報を入れます。 後は特に変更しませんでした。
参考にしたサイトのコードとは少し異なります。不要と思うところを削除したためです。

      import io.appium.java_client.MobileElement;
      import io.appium.java_client.android.AndroidDriver;
      import org.openqa.selenium.By;
      import org.openqa.selenium.remote.DesiredCapabilities;
      import org.openqa.selenium.support.ui.ExpectedConditions;
      import org.openqa.selenium.support.ui.WebDriverWait;
      import org.testng.annotations.AfterMethod;
      import org.testng.annotations.BeforeMethod;
      import org.testng.annotations.Test;

      import java.net.MalformedURLException;
      import java.net.URL;

      public class calctest {
          public AndroidDriver driver;
          public WebDriverWait wait;

          @BeforeMethod
          public void setup () throws MalformedURLException {
              DesiredCapabilities caps = new DesiredCapabilities();
              caps.setCapability("deviceName", "Pixel 3 API 26"); // ①emulatorの名前
              caps.setCapability("udid", "emulator-5554");        // ②adb devicesコマンドの結果
              caps.setCapability("platformName", "Android");      // ③androidなのでandroid

              driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),caps);
              wait = new WebDriverWait(driver, 10);
          }

          @Test
          public void basicTest () throws InterruptedException {
              //Click and pass Splash
              wait.until(ExpectedConditions.visibilityOfElementLocated
                      (By.id("com.android.calculator2:id/digit_1"))).click();    // ④uiautomatorviewer.exeで取得した情報を
          }

          @AfterMethod
          public void teardown(){
              driver.quit();
          }
      }

      
	  

7.実行
7-1. emulatorを起動(「サーバーVXXXXXを起動する」ボタンも押しておく)
7-2. emulator上で電卓アプリを起動
7-3. intellj IDEAで、Runメニュー Runを押す。
7-4. 電卓の1が押せたら成功です。

8.できた
こんな感じで押せました。

0 件のコメント:
コメントを投稿