appium 学习各种小功能总结--功能有《滑动图片保存截图验证元素是否存在》---新手总结(大牛勿喷,新手互相交流)

Posted %u77E5%u4E4E%u795E%u8005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appium 学习各种小功能总结--功能有《滑动图片保存截图验证元素是否存在》---新手总结(大牛勿喷,新手互相交流)相关的知识,希望对你有一定的参考价值。

1.首页滑动图片点击

 1    /**
 2          * This Method for swipe Left
 3          * 大距离滑动 width/6 除数越大向左滑动距离也越大。
 4          * width:720
 5          *height:1280
 6          * @author Young
 7          * @param driver2
 8          * @param during
 9          */
10         public void swipeToLeft2(androidDriver driver2, int during) {
11             int width = driver2.manage().window().getSize().width;
12            // System.out.println("width:"+width);
13             int height = driver2.manage().window().getSize().height;
14             //System.out.println("height:"+height);
15             //driver2.swipe(width * 3 / 4, height / 2, width / 4, height / 2, during);
16             driver2.swipe(width * 8 / 9, height / 2, width / 8, height / 2, during);
17             // wait for page loading
18         }

使用方法:

swipeToLeft2(driver,3000);

2.保存截图

  /**
	     * This Method create for take screenshot
	     * 捕获截图功能
	     * @author Young
	     * @param drivername
	     * @param filename
	     * 调用snapshot((TakesScreenshot) driver, "zhihu_showClose.png");
	     */
	    public static void snapshot(TakesScreenshot drivername, String filename) {
	        // this method will take screen shot ,require two parameters ,one is
	        // driver name, another is file name

	        String currentPath = System.getProperty("user.dir"); // get current work
	                                                                // folder
	        File scrFile = drivername.getScreenshotAs(OutputType.FILE);
	        // Now you can do whatever you need to do with it, for example copy
	        // somewhere
	        try {
	            System.out.println("save snapshot path is:" + currentPath + "/"
	                    + filename);
	            FileUtils.copyFile(scrFile, new File(currentPath + "\\" + filename));
	        } catch (IOException e) {
	            System.out.println("Can‘t save screenshot");
	            e.printStackTrace();
	        } finally {
	            System.out.println("screen shot finished, it‘s in " + currentPath
	                    + " folder");
	        }
	    }

 使用方法:

snapshot((TakesScreenshot) driver, "firstjt.png");

 

3.验证元素是否存在

		 //验证登录元素是否存在
  public boolean isElementExsitAndroid(AndroidDriver driver,By elemnt){	
			boolean flag = false;  
	         try {  
	             WebElement element=driver.findElement(elemnt);  
	             flag=null!=element;  
	         } catch (NoSuchElementException e) {  
	             System.out.println("Element:" + elemnt.toString()  
	                     + " is not exsit!"); 
	             flag=false;
	          
	         }  
	         return flag;  
		}	   

 使用方法:

isElementExsitAndroid(driver,By.id("com.zhanglb.yijiebao:id/editRemark"));

 

4.appium初始化:

/**
	 * android配置项目初始化
	 * */
	public AndroidDriver appConfige(AndroidDriver driver){
		 //设置apk的路径
	       File classpathRoot = new File(System.getProperty("user.dir"));
	       File appDir = new File(classpathRoot, "apps");
	       File app = new File(appDir, "debuglemonoa.apk");
	       
	       //设置自动化相关参数
	       DesiredCapabilities capabilities = new DesiredCapabilities();
	       capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //这句不是必须的	
	       //启动哪种设备,是真机还是模拟器?
	       capabilities.setCapability("deviceName", "Android Emulator"); //android模拟器
	       //使用哪种平台
	       capabilities.setCapability("platformName", "Android");
	       //设置安卓系统版本
	       capabilities.setCapability("platformVersion", "4.4.2");	       
	       //设置apk路径
	       capabilities.setCapability("app", app.getAbsolutePath()); 
	       //设置名称超时时间
	       //capabilities.setCapability("newCommandTimeout",30);
	       //以毫秒为单位,等待 Webview 上下文激活的时间
	       //capabilities.setCapability("autoWebviewTimeout",10);
	       //等待设备在启动应用后准备就绪的超时时间。以秒为单位。
	       capabilities.setCapability("androidDeviceReadyTimeout",10);
	       
	       //移动浏览器名称 Chromium 谷歌浏览器
	      // capabilities.setBrowserName("Chromium");
	       
	       //设置app的主包名和主类名 主要的参数      appActivity注意,原生app的话要在activity前加个"."。
	       capabilities.setCapability("appPackage", "com.zhanglb.yijiebao");
	       capabilities.setCapability("appActivity", "com.hzh.main.WelcomeActivity");
	      // capabilities.setCapability("appPackage", "com.qihoo.util");
	       //capabilities.setCapability("appActivity", ".StartActivity");
	       
	       //初始化
	       //driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
	       //driver=new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	       try {
			driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	       } catch (MalformedURLException e) {
			// TODO Auto-generated catch block
	    	   e.printStackTrace();
	       }
	       return driver;
	}

 

以上是关于appium 学习各种小功能总结--功能有《滑动图片保存截图验证元素是否存在》---新手总结(大牛勿喷,新手互相交流)的主要内容,如果未能解决你的问题,请参考以下文章

appium滑动操作总结

使用ivx的可滑动容器制作消息列表的一些经验总结

关于appium自动化swipe模拟滑动操作

用小程序做一个类似于苹果AssistiveTouch功能

appium--滑动

Appium移动端自动化:Appium-Desktp的使用以及定位元素方式总结