转自:http://www.aichengxu.com/view/41510

使用的语言是java,appium的版本是1.3.4,java-client的版本是java-client-2.1.0,建议多参考java-client-2.1.0-javadoc。

1.使用AndroidDriver,其已经继承了AppiumDriver

        private AndroidDriver driver;

	@Before
public void setUp() throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("appPackage", "com.android.settings");
capabilities.setCapability("appActivity", ".Settings"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
} @After
public void tearDown() throws Exception {
driver.quit();
}

2.截屏并保存至本地

                //截屏并保存至本地
File screen = driver.getScreenshotAs(OutputType.FILE);
File screenFile = new File("d:\\screen.png");
try {
FileUtils.copyFile(screen, screenFile); //commons-io-2.0.1.jar中的api
} catch (IOException e) {
e.printStackTrace();
}

3.push文件、pull文件

        	File file = new File("d:\\test.txt"); //test.txt内容为"test"
String content = null;
try {
content = FileUtils.readFileToString(file);
} catch (IOException e) {
e.printStackTrace();
} byte[] data = Base64.encodeBase64(content.getBytes());
driver.pushFile("sdcard/test.txt", data); byte[] resultDate = driver.pullFile("sdcard/test.txt");
System.out.println(new String(Base64.decodeBase64(resultDate))); //打印结果为"test"

4.

        //获取当前界面的activity,可用于断言是否跳转到预期的activity
driver.currentActivity();

5.

        //打开通知栏界面
driver.openNotifications();

6.

        //获取网络状态
int status = driver.getNetworkConnection().value;
System.out.println(status); //设置网络状态
driver.setNetworkConnection(new NetworkConnectionSetting(status));
//或者
driver.setNetworkConnection(new NetworkConnectionSetting(false, true, false));

7.

        //启动其他应用,跨APP
driver.startActivity("com.android.camera", ".CameraLauncher");

8.

        //自动滑动列表
driver.scrollTo("text");
//或者
driver.scrollToExact("text");

9.

                //安装APP
driver.installApp(appPath); //判断应用是否已安装
driver.isAppInstalled("package name");

10.

        //拖动相机图标至日历图标位置
new TouchAction(driver).longPress(driver.findElementByName("相机"))
.moveTo(driver.findElementByName("日历")).release().perform();

11.

                //锁屏
driver.lockScreen(2); //判断是否锁屏
driver.isLocked();

12.

                //发送按键事件
driver.sendKeyEvent(AndroidKeyCode.HOME);

13.

<span style="color:#ff0000;"> </span>
//通过uiautomator定位clickable属性为true的元素并点击
driver.findElementByAndroidUIAutomator("new UiSelector().clickable(true)").click(); //相同属性的元素使用List存放
List<WebElement> elements = driver.findElementsByClassName("class name");
elements.get(0).click(); //点击List中的第一个元素
//tap,点击元素位置
driver.tap(1, driver.findElementByName("日期和时间"), 0);

appium部分api的更多相关文章

  1. Appium python API 总结

    Appium python api 根据testerhome的文章,再补充一些文章里面没有提及的API [TOC] [1]find element driver 的方法 注意:这几个方法只能通过sel ...

  2. appium+python自动化☞appium python api大全

    整理了一些常用的appium python api,供学习使用...

  3. Appium===Appium+Python API(转)

    Appium+python自动化8-Appium Python API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contex ...

  4. 7、Appium常用API

    嗯,官网已经介绍的很全了.会选几个常用API后期整理. Appium常用API地址:http://appium.io/docs/cn/writing-running-appium/appium-bin ...

  5. appium 常用API

    ''.appium api第二弹 锋利的python,这是初稿,2015/1/5 如有错误的地方,请同学们进行留言,我会及时予以修改,尽量整合一份ok的api 作者:Mads Spiral QQ:79 ...

  6. appium 常用api介绍(2)

    前言:接着上一篇继续讲常用的一些api 参考博文:http://blog.csdn.net/bear_w/article/details/50330565 1.send_keys send_keys( ...

  7. appium python api收集

    1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的 ...

  8. appium 常用API使用总结!

    将常用函数进行适用总结,后期在使用的过程中直接查找调用即可 获取界面属性.控件属性 1.current_activity:获取activity名称 device.current_activity 2. ...

  9. Appium Python API 中文版

    Appium_Python_Api文档 1.contextscontexts(self): Returns the contexts within the current session. 返回当前会 ...

  10. Appium Python API

    1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的 ...

随机推荐

  1. zoj 1760 Doubles

    Doubles Time Limit: 2 Seconds      Memory Limit: 65536 KB As part of an arithmetic competency progra ...

  2. .NET重构(一):抽象工厂模式实现登录

    导读:一路艰辛,我也走到了重构.在重构之前,师傅让用经典三层(UI.BLL.DAL)敲了登录.用户的增删改查,共五条线.从开始对三层的朦胧,到五条线结束,终于对三层有了逻辑上清晰的理解.然后就画了几天 ...

  3. J2EE 中间件 JVM 集群

    [转]J2EE 中间件 JVM 集群 博客分类: 企业应用面临的问题 Java&Socket 开源组件的应用 jvm应用服务器weblogicjvm集群 1 前言 越来越多的关键任务和大型应用 ...

  4. 刷题总结——道路覆盖(ssoj)

    题目: 题目描述 Tar 把一段凹凸不平的路分成了高度不同的 N 段(每一段相同高度),并用 H[i] 表示第 i 段高度.现在 Tar 一共有 n 种泥土可用,它们都能覆盖给定的连续的 k 个部分. ...

  5. PHP文件上传设置和处理(单文件)

    <!--upload.php内容--><?php /* 修改php.ini的设置 file_uploads必须是On upload_max_filesize 设置上传文件的大小,此值 ...

  6. 路飞学城详细步骤 part2

    一 显示课程列表 需求:当你点击课程,course.vue在 <router-view>渲染,并不需要你进行其他点击,所欲的课程列表直接在前端显示,数据是从数据库拿到的. 补充1:生命周期 ...

  7. excel打乱各行的顺序,实现无序随机排列

    由于公司做活动,经常会发些激活码过来,为了让激活码能够充分使用,经常要打乱激活码的顺序,百度了下,看了下网上的介绍,还不错,挺实用,记录下来. 具体方法如下: 1.将文本里的内容复制到Excel里的任 ...

  8. hdu 4778 Gems Fight! 状压dp

    转自wdd :http://blog.csdn.net/u010535824/article/details/38540835 题目链接:hdu 4778 状压DP 用DP[i]表示从i状态选到结束得 ...

  9. R语言入门视频笔记--6--R函数之cat、format、switch函数

    一.cat 猫  怎么就变成一个输出函数了呢? cat  一个输出函数,功能和print有相同之处 我们一起比较看看 1.cat(“hellow world”)或cat('hellow world') ...

  10. Android UI设计--半透明效果对话框及activity(可做遮罩层)

    下面是style的一些属性及其解释 <style name="dialog_translucent" parent="@android:style/Theme.Di ...