zoukankan      html  css  js  c++  java
  • 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 = 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);
  • 相关阅读:
    【转】Aspose.Cells读取excel文件
    sencha treestore 取消自动加载数据
    百度地图js根据经纬度定位和拖动定位点
    sencha gridpanel checkbox 复选框的勾选 以及和单机行冲突
    c# tcp备忘及networkstream.length此流不支持查找解决
    小程序view排版
    .net+mvc,ueditor
    爬虫BS4—淘女郎
    爬虫手动流程
    python web cgi
  • 原文地址:https://www.cnblogs.com/fenqing3108/p/6236348.html
Copyright © 2011-2022 走看看