zoukankan      html  css  js  c++  java
  • appium部分api

    转自: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);
  • 相关阅读:
    路径不对 导致FileNotFoundError: [WinError 2] 系统找不到指定的文件, 问题解决办法
    pycharm + selenium + python 提示 Unresolved reference 'webdriver' 解决办法
    highstock实现股票分时
    jquery 源码剖析1
    html 其它标签
    html5 基本内容 摘自W3C
    html总结
    web性能 部分
    linux常用命令 3
    linux常用命令 2
  • 原文地址:https://www.cnblogs.com/melody-emma/p/4744633.html
Copyright © 2011-2022 走看看