appium-手势密码实现-automationName 是automator2

男儿欲遂平生志,六经勤向窗前读。这篇文章主要讲述appium-手势密码实现-automationName 是automator2相关的知识,希望能为你提供帮助。
上一篇博客已经说了
 
下面就说一下automator2的情况;
【appium-手势密码实现-automationName 是automator2】手势密码的moveTo方法的参数进行了改变。 参数是相对于当前的位置变化。 而不是相对于beginX和beginY变化。

ta.press(beginX, beginY).moveTo(0, 2*yStep).moveTo(0, 2*yStep).moveTo(2*xStep, 0).release().perform();
仅改变参数还不行,还需要将

TouchAction ta = new TouchAction(driver); 放在for循环的里面, 即没开始一次手势密码,就new一个新的TouchAction, 否则会报错(坐标超出页面)

public void setLockPattern(String id, int index) throws Exception { String page = driver.getPageSource(); //logger.info("page = " + page); if (page.contains(id)) {//检测是否是有手势密码出现 logger.info("检测到有手势密码"); /* List< androidElement> element = driver.findElements(By.xpath(Constant.XPATH_VIEW + "[contains(@resource-id,‘" + id + "‘)]")); Thread.sleep(1000); //触摸前要等待1秒 AndroidElement gelemt = element.get(0); //获取到这个元素把它当做一个对象来做 */ AndroidElement gelemt = driver.findElement(By.xpath(Constant.XPATH_VIEW + "[contains(@resource-id,‘" + id + "‘)]")); int startX = gelemt.getLocation().getX(); //获取元素的起始点x坐标 int startY = gelemt.getLocation().getY(); //获取元素的起始点y坐标 int height = gelemt.getSize().getHeight(); //获取元素的高 int width = gelemt.getSize().getWidth(); //获取元素的宽 int xStep = width / 6; //把宽分成6份 int yStep = height / 6; //把高分成6份 int beginX = startX + 3*xStep; //计算触摸起始点x坐标 int beginY = startY + yStep; //计算触摸点y坐标logger.info("开始设置手势密码"); for(int i = 0; i < index; i++){ TouchAction ta = new TouchAction(driver); //初始化TouchAction //appium //ta.press(beginX, beginY).moveTo(0, beginY + 2*yStep).moveTo(0, beginY + 4*yStep).moveTo(beginX + 2*xStep, beginY + 4*yStep).release().perform(); // automator2 ta.press(beginX, beginY).moveTo(0, 2*yStep).moveTo(0, 2*yStep).moveTo(2*xStep, 0).release().perform(); sleep(2000); } logger.info("手势密码设置完毕"); } }


 


    推荐阅读