Eclipse 如何使用appium使用混合移动应用程序?

Eclipse 如何使用appium使用混合移动应用程序?,eclipse,temenos-quantum,Eclipse,Temenos Quantum,有人能帮我吗 我一直在尝试使用AppIUmbu测试混合应用程序(在kony ide中开发),但没有执行编码。然后使用UIautomator查看器,我没有获得“资源id”,所以我使用by.name方法。是否有可能获取资源id??然后,如何使用混合应用程序进行工作 我的编码 package com.appium.testcase; import org.testng.annotations.AfterMethod; import org.testng.annotations.Test; impo

有人能帮我吗

我一直在尝试使用AppIUmbu测试混合应用程序(在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();
    }
}
package com.appium.testcase;
导入org.testng.annotations.AfterMethod;
导入org.testng.annotations.Test;
导入org.testng.annotations.BeforeClass;
导入java.io.File;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.util.List;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.remote.CapabilityType;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入org.openqa.selenium.remote.RemoteWebDriver
公共类应用程序测试
{   
WebDriver=null;
@课前
公共作废设置()
{
文件appDir=新文件(“E:/Automation/adt-bundle-windows-x86_64-20130514/sdk”);
文件app=新文件(appDir,“watsooking.apk”);
DesiredCapabilities=新的DesiredCapabilities();
能力。设置能力(“设备”、“安卓”);
能力。设置能力(“平台名”、“安卓”);
Capability.setCapability(CapabilityType.BROWSER_NAME,“”);
CapabilityType.VERSION,“5.1”);//motoe
//setCapability(CapabilityType.VERSION,“4.2.1”);//lava
setCapability(CapabilityType.PLATFORM,“WINDOWS”);
capabilities.setCapability(“应用程序包”、“com.truetech.watcooking”);
//这里我们提到活动名称,它最初作为应用程序的第一个页面被调用。
capabilities.setCapability(“应用程序活动”、“com.truetech.watsooking.SplashActivity”);
capabilities.setCapability(“deviceName”,“ZX1B328HPW”);//motoe
//setCapability(“deviceName”,“0123456789ABCDEF”);//lava
setCapability(“app”,app.getAbsolutePath());
试一试{
驱动程序=新的RemoteWebDriver(新URL(“http://127.0.0.1:4723/wd/hub(能力),;
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
driver.manage().timeouts().implicitlyWait(80,TimeUnit.SECONDS);
}
@试验
public void loginTest()引发异常{
试一试{
System.out.println(“调用”);
List loginbt=driver.findElements(By.id(“btnlogin”);
loginbt.get(1).单击();
}  
捕获(NullPointerException ex1)
{
//System.out.println(“在要选择的下拉列表中找不到值”);
}
}
@后置法
公共无效拆卸(){
driver.quit();
}
}

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

  • 在“文件”菜单上,单击“设置”。将显示“项目设置”对话框
  • 单击本机选项卡
  • 在Common子选项卡上,单击Expose Widget ID for Test Automation,然后单击Finish
对于Android平台,当您选择公开小部件ID时,将在构建过程中生成一个xml文件,其中包含应用程序的小部件ID。这将在Android限制下详细解释


有关更多信息,请参阅。

要公开小部件ID,请执行以下操作:在“文件”菜单上,单击“设置”。将显示“项目设置”对话框。单击本机选项卡。在Common子选项卡上,单击Expose Widget ID for Test Automation,然后单击Finish。对于Android平台,当您选择公开小部件ID时,将在构建过程中生成一个xml文件,其中包含应用程序的小部件ID。这将在Android限制下详细解释。