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


    1.首页滑动图片点击

     1    /**
     2          * This Method for swipe Left
     3          * 大距离滑动 width/6 除数越大向左滑动距离也越大。
     4          * 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);
    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;
    	}
    
  • 相关阅读:
    Devrama Slider
    全栈开发必备的10款 Sublime Text 插件
    经典网页设计:使用颜色滤镜效果的20个网站
    Nibbler – 免费的网站测试和指标评分工具
    使用 HTML5 Canvas 绘制出惊艳的水滴效果
    Qt4 和 Qt5 模块的分类
    设计Qt风格的C++API
    Qt属性系统
    Qt实现艺术字效果
    Qt中容器类应该如何存储对象(最好使用对象指针类型,如:QList<TestObj*>,而不要使用 QList<TestObj> 这样的定义,建议采用 智能指针QSharedPointer)
  • 原文地址:https://www.cnblogs.com/kllay/p/5611787.html
Copyright © 2020-2023  润新知