首页 > 代码库 > java appium api

java appium api

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 = http://www.mamicode.com/Base64.encodeBase64(content.getBytes());"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);

java appium api