注意:此处省略ADB和Node.js的配置。

代码示例:

package com.hisky.seleniumTest;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.remote.CapabilityType;import org.openqa.selenium.remote.DesiredCapabilities;import org.openqa.selenium.remote.RemoteWebDriver;/** *  * @author zhenglin.yang *  */public class AndroidTest {private static WebDriver driver;public static void main(String[] args) {killProcessor("node.exe");killProcessor("adb.exe");startAppuim();launchApp();clickTest();}private static void clickTest() {try {driver.findElement(By.name("Storage")).click();Thread.sleep(1000);driver.findElement(By.name("Backup")).click();Thread.sleep(1000);driver.findElement(By.name("Locate")).click();Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static void launchApp() {File classPath = new File(System.getProperty("user.dir"));File app = new File(classPath, "spark-normal-36.98.apk");DesiredCapabilities capabilities = new DesiredCapabilities();capabilities.setCapability("device", "Android");capabilities.setCapability(CapabilityType.VERSION, "4.4.2");capabilities.setCapability(CapabilityType.BROWSER_NAME, "");capabilities.setCapability(CapabilityType.PLATFORM, "Windows");capabilities.setCapability("app", app.getAbsolutePath());capabilities.setCapability("app-package", "com.asurion.android.spark");capabilities.setCapability("app-activity", "com.asurion.android.setup.activity.ZeroActivity");capabilities.setCapability("app-wait-activity", "com.asurion.android.common.ui.actionbar.MainActionBarActivity");capabilities.setCapability("newCommandTimeout", 1200);try {driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);} catch (MalformedURLException e) {e.printStackTrace();}System.out.println("launching new activity");}private static void startAppuim() {List<String> cmdLine = new ArrayList<String>(Arrays.asList(new String[] { "cmd.exe", "/C", "start", "node", "D:/java/eclipse-automation/Appium/node_modules/appium", "--no-reset" }));ProcessBuilder pb = new ProcessBuilder(cmdLine);try {pb.start();} catch (IOException e) {e.printStackTrace();}try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("node start");}private static void killProcessor(String processName) {try {Process p = Runtime.getRuntime().exec(System.getenv("windir") + "\\system32\\tasklist.exe");BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));String line = null;while ((line = br.readLine()) != null) {if (line.indexOf(processName) != -1) {String cmd = "taskkill /F /IM " + processName;Runtime.getRuntime().exec(cmd);System.out.println("killing processor:" + processName);}}br.close();} catch (Exception e) {e.printStackTrace();}}}

注意:

1、Android客户端放在项目路径下:

D:\java\workspaces\myworkspaces\seleniumTest-0.0.1-SNAPSHOT\spark-normal-36.98.apk

2、Android手机需要设置屏幕始终是亮的状态。

更多相关文章

  1. 使用ScheduledExecutorService延时关闭一个全屏的对话框
  2. Android(安卓)APP拉起小程序、分享小程序、小程序打开APP
  3. zxin android客户端二维码框问题
  4. Android.mk 代码注释
  5. Android开发常用经典代码段集锦
  6. Windows下载Android源码
  7. get方式和post方式的请求
  8. 用Socket实现PC和手机的文件传输
  9. Google VR for Android(安卓)- Getting Started(SDK)

随机推荐

  1. android 图片双缓存,开源框架 universali
  2. 绝对精品—史上最全最权威的Android(安卓
  3. Android 中常用的五种布局
  4. Android NDK开发动态加载so示例源码
  5. [置顶] android IPC通信(下)-AIDL
  6. TextView的跑马灯效果,还有焦点问题
  7. SuperMap iMobile for Android定位实现
  8. 关于Android的极光推送的消息栏
  9. RecyclerView不显示问题
  10. Android中的Grid间距(Grid Spacing on And