Appium环境搭建已经在在博客中写出

http://www.cnblogs.com/feimaoyuzhubaobao/p/5057832.html   那么本篇博客主要介绍java版本的appium入门demo。在开始demo之前,Android模拟器要安装好,其实模拟器就是模拟器真机,除了不能打电话和发信息,其他应该都可以的。模拟器的话在这里还可以安装genymotion,其实它不是普通的模拟器,严格来说,genymotion是虚拟机,被网传定义为模拟器。想安装这款模拟器的话。我在这里提供安装文件地址 http://yun.baidu.com/s/1pJC6ve7 和我自己在官网上注册号的账号和密码:feimao ,feimao12345。genymotion安装文件比较多,效果确实比前面AVD.exe模拟器要快些。我就不再赘述模拟器了,下面开始正式appium入门demo。

使用Eclipse创建demo工程

1.打开Eclipse,【File】-->【New】-->【Project】

2.选择【Java Project】-->【Next】

3.输入工程名称AppiumDemo,点击【Finish】

4.右键点击工程 New-Folder,新建两个文件夹:apps和libs,目录结构如下:

导入测试的类库

由于Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。所以selenium类库是要导入的。

1.Selenum2类库: http://seleniumhq.org/downlod

做过selenium自动化的朋友这块应该是熟悉的,就不多讲了。

2.Appium类库: http://appium.io/downloads.html

3.右键点击工程空白处,选择【Build Path】-->【Configure Build Path】

selenium的类库我导入比较多哈,不影响的。

下载测试APK

1.下载测试的文件

ContactManager.apk  https://github.com/appium/sample-code/tree/master/sample-code/apps/ContactManager

2.将下载的apk直接复制黏贴到项目的apps目录下

建立package包和demo文件

1.在src文件夹上右键单击,【New】-->【package】,输入包名: com.feimao.demo,点击【Finish】

2.在package下新建类:ContactTest.java

下载地址如下:  

https://github.com/appium/sample-code/tree/master/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium

代码如下:

package com.feimao.demo;

import java.io.File;
import java.net.URL;
import java.util.List; import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver; public class ContactTest {
private AndroidDriver driver;
@Before
public void setUp() throws Exception {
//设置apk的路径
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "apps");
File app = new File(appDir, "ContactManager.apk"); //设置自动化相关参数
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Android Emulator"); //设置安卓系统版本
capabilities.setCapability("platformVersion", "4.4.2");
//设置apk路径
capabilities.setCapability("app", app.getAbsolutePath()); //设置app的主包名和主类名
capabilities.setCapability("appPackage", "com.example.android.contactmanager");
capabilities.setCapability("appActivity", ".ContactManager"); //初始化
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
} @Test
public void addContact(){
WebElement el = driver.findElement(By.name("Add Contact"));
el.click();
List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
textFieldsList.get(0).sendKeys("feimaoyuzhubaobao");
textFieldsList.get(2).sendKeys("forever together");
driver.swipe(100, 500, 100, 100, 2);
driver.findElementByName("Save").click();
} @After
public void tearDown() throws Exception {
driver.quit();
}
}

启动Android模拟器(也可以连接真机)

1.cmd输入:android avd,选择模拟器,点击【Start】即可。如果你在eclipse中集成了插件,那么在eclipse中也可以直接启。

2.启动好后,cmd输入:adb devices,确定设备是否连接上,如下图连接成功:

启动Appium

1.由于之前安装好了appium,那么直接双击,然后点击启动按钮

2.cmd命令,appium 启动

运行Appium入门demo

1.在eclipse中,项目右键>【Run As】>【JUnit Test】,运行过程如下:

到这里appium的入门demo已经全部写完了,这只是一个模拟呼叫联系人的例子,然后可以模拟此demo,写登录啊、定位元素啊等等。appium定位元素的方法貌似有9种,后续还会写一些工作中的例子和解决appium问题的方法。另外还可以去官网上下载源代码来看,看它的原理,看它的API等。

Appium--入门demo的更多相关文章

  1. appium跑demo简单实例讲解

    安装appium,设置 demo.pyfrom appium import webdriver #要装webdriver,方法查看http://www.cnblogs.com/sincoolvip/p ...

  2. 【SSH系列】初识spring+入门demo

    学习过了hibernate,也就是冬天,经过一个冬天的冬眠,当春风吹绿大地,万物复苏,我们迎来了spring,在前面的一系列博文中,小编介绍hibernate的相关知识,接下来的博文中,小编将继续介绍 ...

  3. 基于springboot构建dubbo的入门demo

    之前记录了构建dubbo入门demo所需的环境以及基于普通maven项目构建dubbo的入门案例,今天记录在这些的基础上基于springboot来构建dubbo的入门demo:众所周知,springb ...

  4. apollo入门demo实战(二)

    1. apollo入门demo实战(二) 1.1. 下载demo 从下列地址下载官方脚本和官方代码 https://github.com/nobodyiam/apollo-build-scripts ...

  5. lua入门demo(HelloWorld+redis读取)

    1. lua入门demo 1.1. 入门之Hello World!! 由于我习惯用docker安装各种软件,这次的lua脚本也是运行在docker容器上 openresty是nginx+lua的各种模 ...

  6. netty入门demo(一)

    目录 前言 正文 代码部分 服务端 客服端 测试结果一: 解决粘包,拆包的问题 总结 前言 最近做一个项目: 大概需求: 多个温度传感器不断向java服务发送温度数据,该传感器采用socket发送数据 ...

  7. canal入门Demo

    关于canal具体的原理,以及应用场景,可以参考开发文档:https://github.com/alibaba/canal 下面给出canal的入门Demo (一)部署canal服务器 可以参考官方文 ...

  8. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  9. SpringBoot 入门 Demo

    SpringBoot   入门 Demo Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从 ...

  10. ReactJs 入门DEMO(转自别人)

    附件是分享的一些他人的ReactJs入门DEMO,以前版本使用的是JSXTransformer.js,新版的用browser.min.js替代了. DEMO 下载地址:http://files.cnb ...

随机推荐

  1. java设计模式—— 工厂模式

    菜鸡互啄... 工厂模式通过定义一个创建对象的接口,让其子类决定实例化哪个工厂类.因此我们要解决接口选择的问题,实现不同的计划创建不同的对象. 首先我们定义一个轿车接口 public interfac ...

  2. 卷积神经网络的一些经典网络2(Inception)

    在架构内容设计方面,其中一个比较有帮助的想法是使用1x1卷积.1x1卷积能做什么? 对于6x6x1的通道的图片来说,1x1卷积效果不佳,如果是一张6x6x32的图片,那么使用1x1卷积核进行卷积效果更 ...

  3. ST-LINK V2 DIY笔记(一)

    最近一段时间调试STM32板子的时候,都是用JLINK+杜邦线,或者拿官方板子当STLINK用,可以用,但是体积比较大,有时候觉得比较麻烦.正好前一阵手头项目少,就想DIY一个STLINK. 图是网上 ...

  4. CSS3属性之圆角效果——border-radius属性

    在css3之前,要实现圆角的效果可以通过图片或者用margin属性实现(可以参考这里:http://www.hicss.net/css-practise-of-image-round-box/).实现 ...

  5. [LeetCode] Find Smallest Letter Greater Than Target 找比目标值大的最小字母

    Given a list of sorted characters letters containing only lowercase letters, and given a target lett ...

  6. 【Python3.6+Django2.0+Xadmin2.0系列教程之二】学生信息管理系统(入门篇)

    上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, ...

  7. 深入java多线程一

    涉及到 1.线程的启动(start) 2.线程的暂停(suspend()和resume()) 3.线程的停止(interrupt与异常停止,interrupt与睡眠中停止,stop(),return) ...

  8. codeforces 842D Vitya and Strange Lesson

    题目大意: 定义mex数为数组中第一个没有出现的非负整数.有m个操作,每个操作有一个x,将数组中所有的元素都异或x,然后询问当前的mex Input First line contains two i ...

  9. [BZOJ]1031 字符加密Cipher(JSOI2007)

    持续划水中…… 感觉BZOJ上AC人数多的基本都是一些模板题,也就是某些算法的裸题.这些题目mark一下到时候回来复习也是不错的选择. Description 喜欢钻研问题的JS同学,最近又迷上了对加 ...

  10. THUPC2017 抱大腿记

    Day 0: 移步http://www.cnblogs.com/juruolty/p/6854848.html Day 1: 来到了清华大学. 见到了zrt巨巨. 又发了件衣服,我们开始看别的队的名字 ...