我可以只使用应用程序的.apk自动使用appium吗?或者我在工作区中需要应用程序?

时间:2014-12-23 11:12:44

标签: android eclipse webdriver appium

我问这个是因为我自动化工作区中存在的应用程序(TestApp.apk)工作正常。但是当我使用另一个应用程序(WnG.apk)时,它在我的工作区中不存在,它不起作用。此时appium无法找到该元素。发生错误(" 无法使用给定的搜索参数在页面上找到元素。")。

以下是我的代码:

公共类Appium {

WebDriver driver;

@BeforeClass
public void setUp() throws MalformedURLException{
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName", "Android Emulator");
    capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.
    capabilities.setCapability("platformVersion", "4.4");
    capabilities.setCapability(CapabilityType.PLATFORM, "Windows");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("app", "C:/Appium/AppiumForWindows-1.2.4.1/WishAndGreet.apk");
    capabilities.setCapability("app-package", "com.example.wishandgreet"); //Replace with your app's package
    capabilities.setCapability("app-activity", ".LoginActivity"); //Replace with app's Activity
    driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void loginTest(){
    System.out.println("*************************************************************");
    WebElement e1 = driver.findElement(By.id("com.example.wishandgreet:id/usernameEditText"));

    System.out.println(e1.getText());
    Assert.assertTrue(e1.getText() == "email / mobile number", "Username Text incorrect");
    //Assert.assertEquals(e1.getText(),"email / mobile number");
    e1.sendKeys("test@gmail.com");
    WebElement e2 = driver.findElement(By.id("com.example.wishandgreet:id/passwordEditText"));

    Assert.assertTrue(e2.getText() == "Password", "Pass text incorrect");
    e2.sendKeys("1234");
    System.out.println(e2);
    WebElement e3 = driver.findElement(By.id("com.example.wishandgreet:id/loginButton"));
    e3.click();

    System.out.println(e1);
}

@AfterClass
public void tearDown(){
    driver.quit();
}

1 个答案:

答案 0 :(得分:1)

在Android案例中,您只需要.apk文件即可自动使用Appium。 看起来您遇到的问题与识别元素有关。请仔细检查您是否使用正确的定位器来识别所需的元素,并确保该元素出现在视图中。