はじめに
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=windows3.dependencies.の設定
3-1. IntelliJ IDEAを起動する。3-2.+ Create New Projectを押す。
3-3.Mavenを選択して、Nextボタンを押す
java-client - 最新のバージョンを選択し、mavenというタブに表示されたxmlをコピーする。
dependenciesというタグで囲む必要があります。
同じようにselenium-javaと, testngもコピペします。
最終的にはこんな感じになります。
- <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelversion>4.0.0</modelversion>
- <groupid>org.example</groupid>
- <artifactid>untitled</artifactid>
- <version>1.0-SNAPSHOT</version>
- <!--ここから追加-->
- <dependencies>
- <!--https://mvnrepository.com/artifact/io.appium/java-client-->
- <dependency>
- <groupid>io.appium</groupid>
- <artifactid>java-client</artifactid>
- <version>7.3.0</version>
- </dependency>
- <!--https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java-->
- <dependency>
- <groupid>org.seleniumhq.selenium</groupid>
- <artifactid>selenium-java</artifactid>
- <version>3.141.59</version>
- </dependency>
- <!--https://mvnrepository.com/artifact/org.testng/testng-->
- <dependency>
- <groupid>org.testng</groupid>
- <artifactid>testng</artifactid>
- <version>7.1.0</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <!--ここまで-->
- </project>
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<mobileelement> 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<mobileelement>(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();
- }
- }
- </mobileelement></mobileelement>
7.実行
7-1. emulatorを起動(「サーバーVXXXXXを起動する」ボタンも押しておく)7-2. emulator上で電卓アプリを起動
7-3. intellj IDEAで、Runメニュー Runを押す。
7-4. 電卓の1が押せたら成功です。
0 件のコメント:
コメントを投稿