1

有谁能够帮我,

我一直在尝试使用 appium 测试混合应用程序(在 kony ide 中开发)但是没有执行编码。然后使用 UIautomator 查看器我没有得到“资源 id”所以我使用 by.name 方法。是否有可能获得资源ID?那么如何使用混合应用程序。

我的编码

package com.appium.testcase;


import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver
public class AppiumTest 
{   
WebDriver driver=null;

@BeforeClass
public void setup() 
{
File appDir = new File("E:/Automation/adt-bundle-windows-x86_64-20130514/sdk");
File app = new File(appDir, "WatsCooking.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("device","Android");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability(CapabilityType.VERSION, "5.1");// motoe
//capabilities.setCapability(CapabilityType.VERSION, "4.2.1");//lava
capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");

capabilities.setCapability("app-Package","com.truetech.watcooking");
//Here we mention the activity name, which is invoked initially as app's first page.
capabilities.setCapability("app-Activity","com.truetech.watscooking.SplashActivity");

capabilities.setCapability("deviceName", "ZX1B328HPW");//motoe
//capabilities.setCapability("deviceName", "0123456789ABCDEF");//lava
capabilities.setCapability("app", app.getAbsolutePath());

try {
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

} catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);  

     }

     @Test
public void loginTest() throws Exception {  

    try{
        System.out.println("call");
        List <WebElement> loginbt =driver.findElements(By.id("btnlogin" ));
        loginbt.get(1).click();         
  }  

          catch(NullPointerException ex1)
    {

              //System.out.println( "Value not found in Dropdown to Select");


    }

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

1 回答 1

-1

您需要公开小部件 ID。请执行下列操作:

  • 在文件菜单上,单击设置。显示项目设置对话框。
  • 单击本机选项卡。
  • 在 Common 子选项卡上,单击 Expose Widget IDs for Test Automation,然后单击 Finish。

对于 Android 平台,当您选择公开小部件 ID 时,会在构建过程中生成一个包含应用小部件 ID 的 xml 文件。这在 Android 限制中有详细说明。

有关更多信息,请参阅文档

于 2017-12-06T15:22:57.403 回答