官网源码地址
https://github.com/appium/sample-code/blob/47fc0305396b8322b727820ca55a07607395040c/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/AndroidContactsTest.java#

1 package com.saucelabs.appium;
2

3 import io.appium.java_client.AppiumDriver;
4 import io.appium.java_client.android.AndroidDriver;
5

6 import java.io.File;
7 import java.net.URL;
8 import java.util.List;
9

10 import org.junit.After;
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.openqa.selenium.By;
14 import org.openqa.selenium.WebElement;
15 import org.openqa.selenium.remote.CapabilityType;
16 import org.openqa.selenium.remote.DesiredCapabilities;
17

18 public class AndroidContactsTest {
19 private AppiumDriver driver;
20

21 @Before
22 public void setUp() throws Exception {
23 // set up appium
24 File classpathRoot = new File(System.getProperty("user.dir"));
25 File appDir = new File(classpathRoot, "../../../apps/ContactManager"); //目录位置对应好
26 File app = new File(appDir, "ContactManager.apk");
27 DesiredCapabilities capabilities = new DesiredCapabilities();
28 capabilities.setCapability("deviceName","Android Emulator");
29 capabilities.setCapability("platformVersion", "4.4");
30 capabilities.setCapability("app", app.getAbsolutePath());
31 capabilities.setCapability("appPackage", "com.example.android.contactmanager");
32 capabilities.setCapability("appActivity", ".ContactManager");
33 driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
34 }
35

36 @After
37 public void tearDown() throws Exception {
38 driver.quit();
39 }
40

41 @Test
42 public void addContact(){
43 WebElement el = driver.findElement(By.name("Add Contact"));
44 el.click();
45 List textFieldsList = driver.findElementsByClassName("android.widget.EditText");
46 textFieldsList.get(0).sendKeys("Some Name");
47 textFieldsList.get(2).sendKeys("Some@example.com");
48 driver.swipe(100, 500, 100, 100, 2);
49 driver.findElementByName("Save").click();
50 }
51

52 }

调试时遇到问题1:AndroidDriver包找不到,原因是我前面导的包是java-client-1.2.1.jar,需要导入新的包java-client-2.1.0.jar,下载地址:https://search.maven.org/remotecontent?filepath=io/appium/java-client/2.1.0/java-client-2.1.0.jar
import io.appium.java_client.android.AndroidDriver;

调试时遇到问题2:调试时跑起来没问题,执行到44行时程序退出,eclipse的failure trace报的错是找不到element,考虑到43行元素已经定位都没问题,觉得应该是第二个页面元素还没找到,于是在44行后添加如下代码,等待页面加载
try{Thread.sleep(10);}catch(Exception e){}

调试时遇到问题3:定位行数为42,即@Test后的函数那行,这个问题基本都是由于appium没启动或者长时间开着的缘故,一般调试前最好重新launch下
org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'PC201404231316', ip: '192.168.18.100', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_45'

appium testcase1(Java)的更多相关文章

  1. Appium(JAVA)Windows 7系统搭建及示例运行

    Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http:// ...

  2. (java)selenium webdriver学习---实现简单的翻页,将页面内容的标题和标题链接取出

    selenium webdriver学习---实现简单的翻页,将页面内容的标题和标题链接取出: 该情况适合能能循环page=1~n,并且每个网页随着循环可以打开的情况, 注意一定是自己拼接的url可以 ...

  3. 如何夯实(Java)编程基础,并深入学习和提高

    如何夯实(Java)编程基础,并深入学习和提高? 240赞同反对,不会显示你的姓名 匿名用户 240 人赞同 多学习...网上自学的学习网站很多,见以下榜单~一.汇总榜单: 公开课_学习网站导航 收录 ...

  4. TCL校园招聘——软件开发工程师(java) 只招5个。。。

    简介 TCL集团股份有限公司创立于1981年,是全球性规模经营的消费类电子企业集团之一,广州2010年亚运会合作伙伴,总部位于广东省惠州市仲恺高新区TCL科技大厦.旗下拥有TCL集团.TCL多媒体科技 ...

  5. UEditor上传图片到七牛云储存(java)

    我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...

  6. 开源工作流 Bonita BPM (JAVA)

    Bonita BPM 开源工作流 Bonita BPM  (JAVA) http://www.bonitasoft.com/

  7. ZeroMQ(java)中对IO的封装(StreamEngine)

    哎,各种各样杂七杂八的事情...好久没有看代码了,其实要搞明白一个与IO相关的框架,最好的办法就是把它的I/0的读写两个过程搞清楚...例如在netty中,如果能将eventLoop的运行原理搞清楚, ...

  8. 编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码

    转自:编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码 JDK:java version “1.8.0_31”Java(TM) SE Runtime Environment ( ...

  9. 随机产生30个两个两位数相加的题目(java)

    编程思路: 1首先遇到JAVA产生随机数的问题. 2把产生的随机数设定范围. 3把划分的范围再分四个小区段分别对应四则运算法则加减乘除. 4打印输出. 题目源代码(Java) package coun ...

随机推荐

  1. Bestcoder Round# 80

    [1003 Sequence] 指数循环节,注意a mod p = 0的情况.此时你的循环节如果返回0,这时你会输出1,而实际上应该是0 #include <algorithm> #inc ...

  2. 一个简单的SqlServer游标使用

    declare @id int ) declare c_department cursor for select id,name from department open c_department f ...

  3. Android使用AsyncTask实现可以断点续传的DownloadManager功能

    http://www.it165.net/pro/html/201211/4210.html 最近做项目卡壳了,要做个Android的应用市场,其他方面都还好说,唯独这个下载管理算是给我难住了,究其原 ...

  4. python中的list的方法

    list1=[1,3,5,"a"]print(dir(list1)) """ ['__add__', '__class__', '__contains ...

  5. Autoencoder

    AutoencoderFrom Wikipedia An autoencoder, autoassociator or Diabolo network[1]:19 is an artificial n ...

  6. 前端编码规范(2)—— HTML 规范

    HTML 规范 文档类型 推荐使用 HTML5 的文档类型申明: <!DOCTYPE html>. (建议使用 text/html 格式的 HTML.避免使用 XHTML.XHTML 以及 ...

  7. [分享]运维分享一一阿里云linux系统mysql密码修改脚本

    [分享]运维分享一一阿里云linux系统mysql密码修改脚本       大象吃豆子 级别: 小白 发帖 12 云币 27 加关注 写私信   只看楼主 更多操作楼主  发表于: 2014-09-3 ...

  8. SSH 基础

    什么是SSH? 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务程序的安全验 ...

  9. LENGTH() CHAR_LENGTH()

    http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_length LENGTH(str) Returns the ...

  10. Lazarus如何变成XE的界面

    先设置: 进入“配置安装的包”,选中 EasyDockMgr 和 easyDockMgrDsgn 这两项,重新编译 Lazarus 吧 修改以后,界面就变成了XE的了: