Appium中部分api的使用方法

使用的语言是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");

//自动滑动列表

driver.scrollTo("text");

//或者

driver.scrollToExact("text");

   //安装APP

driver.installApp(appPath);

//判断应用是否已安装

driver.isAppInstalled("package name");

//拖动相机图标至日历图标位置

new TouchAction(driver).longPress(driver.findElementByName("相机"))

.moveTo(driver.findElementByName("日历")).release().perform();

   //锁屏

driver.lockScreen(2);

//判断是否锁屏

driver.isLocked();

 //发送按键事件

driver.sendKeyEvent(AndroidKeyCode.HOME);

<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);</webelement>

时间: 2024-10-05 04:55:02

Appium中部分api的使用方法的相关文章

appium中driver.wait报IllegalMonitorStateException的解释

在写appium代码的时候,有的人想使用wait方法,写成:driver.wait(),结果抛出异常:IllegalMonitorStateException,看了appium client的api文档,关于wait方法是这么写的: public final void wait() throws InterruptedException Causes the current thread to wait until another thread invokes the notify() meth

Appium之UIAutomator API选择元素

UI Automator测试框架提供了一组API来构建UI测试. 利用UI Automator API可以执行在测试设备中,打开‘设置’菜单或应用启动器等操作. UI Automator测试框架非常适合编写黑盒自动化测试 [注意]如果你的安卓机版本在6及以上,可以在desired_caps字典中加上下面这句代码: 'automatorName': 'UiAutomator2' UI Automator查看器   访问设备状态: UI Automator测试框架提供了一个UiDevice类.该类可

Linux中的gpio口使用方法

Linux中的IO使用方法 应该是新版本内核才有的方法.请参考:./Documentation/gpio.txt文件 提供的API:驱动需要包含 #include <linux/gpio.h> 判断一个IO是否合法:int gpio_is_valid(int number); 设置GPIO的方向,如果是输出同时设置电平:/* set as input or output, returning 0 or negative errno */int gpio_direction_input(unsi

关于百度API的使用方法

申请API key可以按照以下链接网文: http://blog.csdn.net/xiaanming/article/details/11171581 http://blog.csdn.net/zgf1991/article/details/20488281 最重要的一点是:在eclipse中直接查看:winows -> preferance -> android -> build中查看Android签名证书的证书指纹 (SHA1)值,并用来申请API key即可: 注册和使用过程中需

jQuery中一些不常用的方法属性【转载】

index(subject) 搜索与参数表示的对象匹配的元素,并返回相应元素的索引值.如果找到了匹配的元素,从0开始返回:如果没有找到匹配的元素,返回-1. data() data(elem):为页面对象添加唯一标识. data(name, value):将数据保存在元素的一个key里面.$("#box").data("shape","rectangle"). data(name):获取值.$("#box").data(&qu

jquery中attr方法和prop方法的区别

关于checked的属性,最重要的概念就是你要记住,它跟checked的状态值是毫无关系的,设置checked = "checked"或者checked = "true"等属性设置,和它的状态值true/false是无关的.,而这里的属性值,事实上只是和defaultChecked的状态值有关,并且只能用来设置checkbox的初始的值.checked的属性值并不会随着checkbox的的状态变化而变化,可是checkbox的状态值却会.因此,为了能更好的跨浏览器的

AOP在 .NET中的七种实现方法

 7Approaches for AOP in .Net AOP在 .NET中的七种实现方法 Here are all the ways that I can think of to add AOPto your application. This mostly focus on the interception side of things,because once you have that, everything else it just details. 在这里列表了我想到的在你的应

小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)

之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白的你们,已经变成了大白. 3.6  PhoneGap中的API能干什么 本章主要介绍进行PhoneGap开发前所须要做好的准备,那么如今是不是该介绍一些关于PhoneGap的事了呢?事实上PhoneGap就是将HTML写成的页面显示出来.然后通过特定的JavaScript获取几组数据而已. 尽管说使用Phon

在Swift中检查API的可用性

http://www.cocoachina.com/swift/20150901/13283.html 本文由CocoaChina译者ALEX吴浩文翻译自Use Your Loaf博客 原文:Checking API Availability With Swift Swift 2改进了检查API可用性的方法,使其更加容易.安全. 回顾Objective-C的方法 在看Swift之前,让我们简要回顾一下我们之前用Objective-C检查SDK可用性的方法. 检查类和框架的可用性 iOS 9作为一