标签:

Apple的坑走完后,终于打开了界面,想想还是有点小激动的,然后进入了更坑的Android环境搭建。

如果你以为这环境就和Apple这样easy能解决(虽然不少坑 - -),那就大错特错,android环境等于另外一套东西,比Apple难弄多了,机制也很傻。。。

牢骚话少说,咱们来跨坑,第一个坑随即而来,之前我在说Apple环境时,下载安装完appium工具,Apple环境自动已经完善(前提是你已经安装完xcode)。那么android环境应该怎么配置呢?

我就绕过我求寻真理的沼泽了,直接说怎么配吧:

先去网上下载一个sdk

https://developer.android.com/sdk/index.html

在这个页面下下载工具或者下载sdk都可以,建议下载工具,虽然不用(也是有原因的。。。这傻工具不认我配的1.8 jdk,好像只认默认路径的1.6和1.7,算了不研究它了)

安装完后,配置环境变量:

进入/etc/ , 编辑profile文件(注意:需要用sudo 命令编辑文件)

export ANDROID_HOME=/Users/"username"/Library/Android/sdk

如果是只下载sdk,解压出来普遍好像放到/usr/local/sdk,具体自己看,放哪里其实没啥关系

保存关闭(命令:wq!)

source profile

安全点就重启下,然后打开终端确认下是否有用

cd $ANDROID_HOME

检查下是不是进入了sdk的目录,如果是,恭喜,又跨过了一个坑。

接下来就是打开工具了:

cd tools

./android

会打开一个新东西:

20180110160555173478.png

说白了,这个就是类似下载驱动的东西,那能下就下吧,如果觉得慢,就下几个自己用的到的版本(我是全下了- -。。。)

搞定后,注意这个sdk manager的一些配置选项,有个tools目录(左上角):

20180110160555175431.png

点击tools然后点击下拉框中的manager avds

很好,又出来一个新东西:

20180110160555177384.png

Create一个新的,我选的版本是安卓4.4.2版本,选项很简单,不要太多关注,内存之类的300足矣,能开就行,保存好,就start吧。

打开之后如图:

20180110160555178360.png

安卓机已起,还等什么,打开appium,点击doctor,看看还有没有问题,一切OK,只欠junit了,来段官方脚本:

import static org.junit.Assert.*;importjava.io.File;importjava.net.URL;importjava.util.List;importio.appium.java_client.AppiumDriver;importio.appium.java_client.android.AndroidDriver;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;importorg.openqa.selenium.By;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.remote.DesiredCapabilities;public classAppiumAndroidTest {privateAppiumDriver dr;

@Beforepublic void setUp() throwsException {

File classpathRoot= new File(System.getProperty("user.dir"));

File appDir= new File(classpathRoot, "../../../apps/ApiDemos/bin");

File app= new File(appDir, "ApiDemos-debug.apk");

DesiredCapabilities capabilities= newDesiredCapabilities();

capabilities.setCapability("deviceName","Android Emulator");

capabilities.setCapability("platformVersion", "4.4");

capabilities.setCapability("platformName", "Android");

capabilities.setCapability("app", app.getAbsolutePath());

capabilities.setCapability("appPackage", "io.appium.android.apis");

capabilities.setCapability("appActivity", ".ApiDemos");

dr= new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

}

@Afterpublic void tearDown() throwsException {

dr.quit();

}

@Testpublic voidtest() {

WebElement el= dr.findElement(By.name("Animation"));

assertEquals("Animation", el.getText());

el= dr.findElementByClassName("android.widget.TextView");

assertEquals("API Demos", el.getText());

el= dr.findElement(By.name("App"));

el.click();

List els = dr.findElementsByClassName("android.widget.TextView");

assertEquals("Activity", els.get(2).getText());

}

}

抄归抄,但我也看了下,发觉一个问题,这两行代码是啥意思:

File classpathRoot = new File(System.getProperty("user.dir"));

File appDir= new File(classpathRoot, "../../../apps/ApiDemos/bin");

File app= new File(appDir, "ApiDemos-debug.apk");

理解了下,就是添加本地的apk,那这个文件在哪里呢,拉官方教程的时候,到的确有apps文件夹,找一下,那怎么融进去呢,放的目录对不对呢

根据代码的写法,这apps目录是写到了user根目录,那好吧,咱就cp一份过来,放到~目录

好了,自此,我们可以跑代码了,记得将appium,android虚拟机,都开出来,

"platformName", "Android" ----这里对应好自己虚拟机的名称。

恭喜,终于都跑起来了,接下来,坑又来了,怎么获取元素,我怎么才能自己写一套自己想要的自动化脚本出来呢,请待Appium 走过的坑( Mac+java )第三期 --如何自定义编译

标签:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐