Appium中部分api的使用方法

来源:互联网 发布:网络接线盒 编辑:程序博客网 时间:2024/05/29 17:04

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

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

        private AndroidDriver driver;@Beforepublic 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);}@Afterpublic 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.
                //安装APPdriver.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);


0 0