• app类型与元素定位-android


    native app:原生页面

    web app:网页嵌入

    hybrid app:介于native和web app之间,既有原生页面又有H5页面

     activityName:每一个app页面都有自己的activityName

    appActivity:用来启动app的

     

    如何在手机上打开指针定位:

    元素定位

    1、ID定位 

    Id就是一个元素的唯一身份标识,由开发人员在项目中指定,如果有对应的resource-id,我们就可以采取这种方式来 实现定位操作 注意:有可能app项目开发人员并不是很严谨,一个页面会有多个相同的resource-id属性

    androidDriver.findElement(By.id("xxx")).click();

     

    2、text定位--安卓内置方法定位

    driver.findElementByAndroidUIAutomator("new UiSelector().text("文本")")

    3、className定位 

    根据class属性查找元素,这种方式一般得到的会是多个元素,重复较多

    androidDriver.findElement(By.className("xxx"));

     

    4、xpath定位

    在项目中此种方式能够适用各种场景,推荐使用
    相对定位

    属性名+定位属性

    driver.findElement(By.xpath("//android.widget.TextView[@text='文本']")).click();

    android.widget.EditText(contains(@resource-id,'et_mobile'))---android.widget.EditText为class属性名

    android.widget.TextView[@text='文本']

    5、accessibility id定位 

    在UIAutomatorViewer并没有此属性,对应是content-desc属性

    androidDriver.findElementByAccessibilityId("xxx");

    6、坐标定位

    driver.tap()

    https://www.cnblogs.com/yoyoketang/p/7778077.html

    选择设置中关于手机->连续点击五次版本号->进入开发者选项->指针位置进行勾选

     

    注意:
    坐标定位受设备屏幕尺寸/分辨率/DPI影响,万不得已不要使用此种方式 只能进行点击

    7、UIAutomator定位

    8、toast元素定位 

    Android中的Toast是一种简易的消息提示框。 当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的 是,它永远不会获得焦点,无法被点击。

    获取方式:androidDriver.findElement(By.xpath("//*[contains(@text, 'xxx')]"));

     public void testLocate() throws InterruptedException {
            //1、元素定位-ID(有多个id时放到list中)
            List<WebElement> list = driver.findElements(By.id("com.lemon.lemonban:id/category_title"));
            list.get(1).click();
            //2、文本定位
            driver.findElementByAndroidUIAutomator("new UiSelector().text("文本")").click();
            //3、xpath  //android.widget.EditText(contains(@resource-id,'et_mobile'))
            driver.findElement(By.xpath("//android.widget.TextView[@text='文本']")).click();
            //4、AccessbilityID定位 content-desc属性值
            driver.findElementByAccessibilityId("xx").click();
            //5、坐标点击 533 577
            Thread.sleep(5000);
            TouchAction touchAction = new TouchAction(driver);
            //初始化PointOption类型的对象,把原始的坐标进行封装
            PointOption pointOption = PointOption.point(533,577);
            touchAction.tap(pointOption).perform();
        }

    appium元素定位原理

  • 相关阅读:
    构造函数的特点
    HashMap源码分析
    DVWA-7.1 SQL Injection(SQL注入)-Low
    DVWA-6.4 Insecure CAPTCHA(不安全的验证码)-Impossible
    DVWA-6.3 Insecure CAPTCHA(不安全的验证码)-High
    DVWA-6.2 Insecure CAPTCHA(不安全的验证码)-Medium
    DVWA-6.1 Insecure CAPTCHA(不安全的验证码)-Low
    DVWA-5.4 File Upload(文件上传)-Impossible
    DVWA-5.3 File Upload(文件上传)-High-绕过文件类型限制
    DVWA-5.2 File Upload(文件上传)-Medium-绕过文件类型限制
  • 原文地址:https://www.cnblogs.com/erchun/p/13283945.html
Copyright © 2020-2023  润新知