Appium日记20161031 徐慧迅

今天主要讲了几个要点,分别为屏幕滑动,设置屏幕密码图案,九宫格解锁还有上传下载文件,淘宝最后的付款流程(利用二维坐标定位)还有渠道包定位。数组

整理下笔记。app

第一点:屏幕滑动,获取屏幕分辨率测试

File screen = driver.getScreenshotAs(OutputType.FILE);spa

try {code

BufferedImage bufferedImage = ImageIO.read(screen);orm

int width = bufferedImage.getWidth();ip

int height = bufferedImage.getHeight();element

System.out.println("width:"+width+"height:"+height);rem

driver.swipe(width/2,height*3/4, width/2,height/4, 1000);get

} catch (IOException e) {

e.printStackTrace();

}

备注:获取手机屏幕的大小,而后再实现滑动。

要点:

1,咱们经过屏幕截图来读取数据,取长宽,而后再用swipe从下屏3/4处到1/4,若有异常,打印出来。printStackTrace()就是打印异常。

2,屏幕若是往右划,那么width9/101/10(因人而异),同理,往下翻数据,从下往上取数据。

后面我又从网上找到了一种方法

是根据坐标滑动的,这种方法把坐标定的比较肯定

 

JavascriptExecutor js = (JavascriptExecutor) driver;

HashMap<String, Double> swipeObject = new HashMap<String, Double>();

swipeObject.put("startX", startX);

swipeObject.put("startY", startY);

swipeObject.put("endX", endX);

swipebject.put("endY", endY);

swipeObject.put("duration", duration);

swipeObject.put("element", Double.valueOf(((RemoteWebElement) element).getId()));

js.executeScript("mobile: swipe", swipeObject);

 

X,Y可为coordinator,也能够是percentduration单位为秒

②能够指定的element,也能够不指定

appium mac端有swipe的按钮能够试下

 

 

    

第二点,就是设置屏幕密码图案

这里咱们讲到了TouchAction

 //WebElement el=driver.findElementById("");

TouchAction action1 = new TouchAction(driver);

//action1.press(el).release().perform();

action1.press(260, 920).moveTo(260,0).moveTo(260,0).moveTo(0,280).release().perform();

Thread.sleep(3000);

 

 

要点:

1,坐标是采用相对值去定位的。这一点要记清楚。

第三,就是九宫格解锁手机锁定了

这里我先放代码上来

 

 

 

要点:

1,仍然是经过坐标去定位,可是他这个是把咱们屏幕分红了几块。他的值有ystep,beginX,beginY,他的startX,starty就是咱们常看法锁的第一个键,他等于把九个点链接起来当作一个正方形去定位。这样咱们的获得的值就只要经过getsize()去获得了。

第四点,上传下载文件

pullFile(remotePath):上传文件

driver.pullFile(remotePath):下载文件

pullFolder(remotePath):下载文件夹

上传文件举例:

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"

pushFile(String remotePath, byte[] base64Data)

要点:

 将字符数组用64位格式写到远程目录的某个文件中。也能够理解为把本地文件push到设备上。

 pullFile(String remotePath)

 将设备上的文件pull到本地硬盘上

 pullFolder(String remotePath

将设备上的文件夹pull到本地硬盘上,通常远程文件为/data/local/tmp下的文件。

 

五,淘宝流程已完成,最后付款

 

 

 

 

要点:

这是第二种方法,咱们一排一排来,经过startX ,endX startY ,endY来取值,封装了top的方法来去

而第一种,就是经过坐标来取值,不要分为left right,center,直接经过本身的坐标,与九宫格相似。

 

第六点:渠道包测试

尚在执行

相关文章
相关标签/搜索