Appium Insecptorが記録したJava言語のAppiumスクリプトがあります。Java AppiumテストはAWS Device Farmで実行できませんでした。
私のスクリプトは唯一の5つのステップを実行するために起こっている:
クリックしてユーザー名フィールド
入力ユーザ名
クリックしてパスワードフィールド
INOUTパスワード
ログインボタンをクリック
私はAWS Device Farmでスクリプトを実行したいと思います。
私はMavenのパッケージmvn clean package -Dskiptests=true
を使用して、それをパッケージ化し、最終的にAWSデバイスのファームにzip-with-dependencies.zip
をアップロードし、私のpom.xml
ファイルを変更するためにAWSデバイスファームのdocumentに従ってくださいました。
しかし、私のテストは失敗しました。 は、ここで私はAWSは私のスクリプトを実行することができなかったようにする間違いをしたところ
は、私にはわからない結果のスクリーンショットです。ここで
は、私が記録私がAWSデバイスのファームチームのために働く
package com.hostname.myapp;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
public class AppiumTest {
private static AppiumDriver<AndroidElement> wd;
@BeforeClass
public static void setUpClass() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("appium-version", "1.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "5.0.2");
capabilities.setCapability("deviceName", "XXXXXXXXXXXX");
capabilities.setCapability("app", "/Users/X/X.apk");
capabilities.setCapability("appPackage", "com.hostname.myapp");
wd = new AndroidDriver<AndroidElement>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}
@AfterClass
public static void tearDownClass() {
if (wd != null) {
wd.quit();
}
}
@Test
public void test() throws IOException {
wd.findElement(By.xpath("android.widget.EditText[1]")).click();
wd.findElement(By.xpath("android.widget.EditText[1]")).sendKeys("username");
wd.findElement(By.xpath("android.widget.EditText[2]")).click();
wd.findElement(By.name("Android.widget.EditText[2]")).sendKeys("password");
wd.findElement(By.xpath("android.widget.Button[1]")).click();
wd.close();
}
同じスクリプトが物理デバイスで正常に動作しているかどうかを確認してください。 'wd = new AndroidDriver <>(新しいURL(" http://127.0.0.1:4723/wd/hub ")、capabilities);を使って試して、要素ロケータとその値が正しいかどうかを確認してください。 – Abhinav