zoukankan      html  css  js  c++  java
  • 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内容为"testerHome"
            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))); //打印结果为"testerHome"
    

    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.拖动元素

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

    10.图案解锁,解锁该图案:

            TouchAction action = new TouchAction(driver);
            action.press(215, 870).moveTo(540, 870).moveTo(862, 870)
                    .moveTo(540, 1195).moveTo(215, 1195).moveTo(215, 1518)
                    .moveTo(540, 1518).moveTo(862, 1518).moveTo(862, 1195)
                    .release().perform();
  • 相关阅读:
    算法生成卐和卍字图
    分形之可编辑折线
    算法生成太极八卦图
    通过算法生成一幅太极图
    使用异或运算对数据及文件进行加密处理,附软件及源码
    C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像
    算法之美---100幅由程序生成的图像,总有一幅让你感到惊艳[下]
    【python基础学习】基础重点难点知识汇总
    【深入学习linux】在linux系统下怎么编写c语言程序并运行
    【深入学习linux】CentOS 7 最小化安装后程序必须安装的组件
  • 原文地址:https://www.cnblogs.com/111testing/p/7824397.html
Copyright © 2011-2022 走看看