1、首先确保环境搭建成功;java环境,appium安装成功;网上很多实例可提供;

2、分析自己安装好app中登录的步骤:启动-开机启动页-引导页-更新问题-登录;

3、步骤代码:

public class AndroidContactsTest {
    /**
    *AndroidDriver<AndroidElement>与AppiumDriver之间由定义来解释:
    *public class AndroidDriver<RequiredElementType extends WebElement> extends AppiumDriver<RequiredElementType> implements AndroidDeviceActionShortcuts,
    HasNetworkConnection,PushesFiles, StartsActivity, FindsByAndroidUIAutomator<RequiredElementType> {
    *AppiumDriver 是的超级驱动程序 Android 驱动程序

    */
   
private AndroidDriver<AndroidElement> driver; private boolean isInstall = false; public void startRecord() throws IOException{ Runtime rt =Runtime.getRuntime(); } /** * 配置启动driver * @throws Exception */ @Before public void setUp() throws Exception { //创建Capabilities DesiredCapabilities capabilities = new DesiredCapabilities(); //设置要调试的模拟器的名字 capabilities.setCapability("deviceName","OPPO A11"); //设置模拟器的系统版本 capabilities.setCapability("platformVersion", "4.4.4"); //设置app的包名 capabilities.setCapability("appPackage", "com.stockemotion.app"); //设置app的启动activity capabilities.setCapability("appActivity", ".activity.SplashActivity"); //启动driver driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
     //Selenium种隐形等待方式,是对于全局来讲,Selenium的延迟等待分为 显式等待(Explicit Wait) & 隐式等待(Implicit Wait). driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); //如果真机设备已经安装,则不需要重新安装   if(isInstall){ File classpathRoot = new File(System.getProperty("user.dir")); File appDir = new File(classpathRoot,"/src/main/java/apps/"); File app = new File(appDir,"stockemotion.apk"); //设置app的路径 capabilities.setCapability("app",app.getAbsolutePath()); } startRecord(); }
    @After
public void tearDown() throws Exception {
//测试完毕,关闭driver,不关闭将会导致会话还存在,下次启动就会报错
driver.quit();
}
/**
* 要执行的的测试方法
*/
@Test
public void apiDemo(){
//引导页出现时点击“立即体验”,通过id方式找到元素
driver.findElementById("com.stockemotion.app:id/bt_open").click();
System.out.print("第一步操作");
//首次进入确定包不更新时,点击
WebElement tip_textview= driver.findElementById("com.stockemotion.app:id/shaohou_updata");
tip_textview.click();
System.out.print("第2步操作");
//通过name方式找到元素
driver.findElement(By.name("大盘气象")).click();
System.out.print("第3步操作");
List<AndroidElement> lis = driver.findElementsByClassName("android.widget.EditText");
lis.get(0).sendKeys("shoujihao");
lis.get(1).sendKeys("yanzhengma ");
//模拟点击键盘“回车键(66)”
driver.pressKeyCode(66);
//点击“登录按钮”
driver.findElementById("com.stockemotion.app:id/tv_login").click();
try {
//线程休眠,停留在该页面
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

  

posted on 2017-08-12 14:47  饿不着  阅读(255)  评论(0)    收藏  举报