51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2582|回复: 2
打印 上一主题 下一主题

[Appium] 跪求appium+Java+Junit 九宫格的实例

[复制链接]
  • TA的每日心情
    奋斗
    2020-11-21 23:27
  • 签到天数: 1180 天

    连续签到: 51 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2017-7-7 23:40:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    跪求appium+Java+Junit 九宫格的实例
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-11 14:07
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]测试连长

    3#
    发表于 2017-7-10 11:27:35 | 只看该作者
    对于此类滑动解锁,只能使用坐标点来滑动了,要使用坐标点九必须得到1~9这几个点在屏幕上的相对位置,要得到相对位置首先要得到元素view的起始坐标(就是左上角的x和y坐标点),然后再获取到元素的宽和高,由此可以得到1到9的这9个坐标点的x和y坐标,再利用touchaction类的方法进行封装即可,具体实现如下:
            /**
             * 针对应用的九宫格滑动解锁,每个滑动点么有独立的元素,只能通过相对的坐标点进行滑动
             * @param driver
             * @param element
             */
            public void unlockApp(AppiumDriver driver,WebElement element) throws Exception{
                    TouchAction ta=new TouchAction(driver);
                    //元素的起始x和y坐标
                    int x=element.getLocation().getX();
                    int y=element.getLocation().getY();
                    //元素的宽和高
                    int width=element.getSize().getWidth();
                    int height=element.getSize().getHeight();
                    //九宫格图案,对应的1-9个数字的位置
                    int num1x=x+width/4;
                    int num1y=y+height/4;
                    int num4x=num1x;
                    int num4y=y+height/2;
                    int num7x=num1x;
                    int num7y=y+height*3/4;
                    int num2x=x+width/2;
                    int num2y=y+height/4;
                    int num5x=num2x;
                    int num5y=y+height/2;
                    int num8x=num2x;
                    int num8y=y+height*3/4;
                    int num3x=x+width*3/4;
                    int num3y=y+height/4;
                    int num6x=num3x;
                    int num6y=y+height/2;
                    int num9x=num3x;
                    int num9y=y+height*3/4;
                    //moveTo(x,y)滑动时需要提供相对于press坐标点的相对位置,按住一个点后,如果向左或向右滑动那么x坐标为元素宽度的1/4,y坐标为0,相对坐标值为正数时向右滑动,为负数时向左滑动
                    //上下滑动时,x相对坐标为0,y的相对坐标为高度的height/4,相对坐标值为正数时向下滑动,为负数时向上滑动
                    /*Z字形解锁图案*/
                    ta.press(num1x, num1y).waitAction(500).moveTo(width/4, 0).moveTo(width/4, 0).moveTo(-width/4, height/4).moveTo(-width/4, height/4).moveTo(width/4, 0).moveTo(width/4, 0).release().perform();
                    /*7字形解锁图案*/
                    ta.press(num1x, num1y).waitAction(500).moveTo(width/4, 0).moveTo(width/4, 0).moveTo(0, height/4).moveTo(0, height/4).release().perform();
            }

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10 赶快去商城换取奖.

    查看全部评分

    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-16 09:09 , Processed in 0.064337 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表