9个点的所有解锁图_Android九宫格手势锁设定和解锁

本文介绍了在使用Appium进行自动化测试时,如何处理九宫格手势解锁的问题。通过获取九宫格视图位置,计算点的坐标,实现手势的设置和解锁。提供了一种简化方法,使用数字1-9代表九个点,通过指定控件和数字组合执行手势操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a9fd0b3e19e28b9da4d08b255906e921.png

最近在做APP的自动化测试,采用的是Appium方案。在测试过程中遇到了九宫格滑动解锁的问题,通过查阅相关资料,我做了一个通用的方法来处理九宫格在一个view中显示的情况。

fe553899131d4e5a36d5a957ab3fff27.png

这种情况我们只能通过定位每一个点的相对坐标来滑动,这里先获取整个九宫格所在view的位置,获取该view左上角的坐标,接下来我们需要得到两个点之间横向和纵向的距离,就能方便的计算出每个点的坐标了。
这里承接上一个版本的思路,提供了一个简化的方法:

    /**
     * 通过数字来标记滑动解锁
     * @param by
     * @param unlockKey
     * @throws IOException
     */
    protected static void patternLock(By by, String unlockKey) throws IOException {
        WebElement element = findElement(by);
        Dimension dimension = element.getSize();

        // 获取手势密码控件坐标
        Point point = element.getLocation();

        HashMap<String, PointOption> lockMap = new HashMap<>();
        // 对手势密码控件进行四等分
        int h = dimension.width / 4;

        // 获取手势密码控件y坐标
        int y = point.y;
        for (int i = 1; i <= 9; i++) {
            if (i < 4) {
                lockMap.put(String.valueOf(i), PointOption.point(h * i, y + h));
            }
            if (i > 3 && i < 7) {
                lockMap.put(String.valueOf(i), PointOption.point(h * (i - 3), y + 2 * h));
            }
            if (i > 6) {
                lockMap.put(String.valueOf(i), PointOption.point(h * (i - 6), y + 3 * h));
            }
        }
        TouchAction action = new TouchAction(driver);

        action.press(lockMap.get(String.valueOf(unlockKey.charAt(0)))).waitAction();
        for (int i = 1; i<unlockKey.length() ; i++){
            action.moveTo(lockMap.get(String.valueOf(unlockKey.charAt(i))));
        }
        action.release().perform();
    }

这里,我将9个点,分别用1、2、3、4、5、6、7、8、9,这9个数字来代替,通过传递一个设置手势锁或者解锁的控件地址,这9个数字的组合来设置(或解锁)手势密码。

然后将发方法放到需要调用的地方就能够很方便的执行啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值