【发布时间】:2016-08-30 07:53:59
【问题描述】:
我有由 Appium Insecptor 重新录制的 Java 语言 Appium 脚本。
我的脚本将只执行 5 个步骤:
点击用户名字段
输入用户名
点击密码字段
输入密码
点击登录按钮
我想在 AWS Device Farm 上运行我的脚本。
我确实按照AWS Device Farm的document修改了我的pom.xml文件,使用Maven包mvn clean package -Dskiptests=true打包,最后将zip-with-dependencies.zip上传到AWS Device Farm。
但我的测试未能运行。 这是结果的截图
我不知道我在哪里做错了让 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<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);并验证元素定位器及其值是否正确。
标签: java android maven amazon-web-services