zoukankan      html  css  js  c++  java
  • appium元素定位

    通过id定位

    安卓里面的id即为resource-id

    driver.findElementById("com.tencent.mm:id/do")

    或者

    WebElement element = driver.findElement(By.id("com.tencent.mm:id/do"));

    通过name定位

    一般text为name

    WebElement el = driver.findElement(By.name("昵称"));

    通过classname定位

    Classname即为uiautomator里面的class信息

    WebElement el = driver.findElement(By.ClassName("android.widget.TextView"));

    通过xpath定位

    在appium中xpath定位元素,执行很慢,效率比较低,很少用

    WebElement el = driver.findElement(By.xpath("//android.widget.Button[@index='1']"));

    通过accessibilityID定位

    在uiautomator中的content-desc信息为该定位元素

    WebElement el = driver.findElementByAccessibilityId("sharebutton");

    通过androiduiautomator定位元素

    AndroidUIAutomator是一个强有力的元素定位方式,它是通过Android UIAutomator类库去找元素,
    findElement(By.AndroidUIAutomator(String UIAuto));

    可以选项id,classname,name,description作为传入的字符串

    WebElement el = driver.findElementByAndroidUIAutomator("new UiSelector().description("sharebutton")");

    Text属性的方法,uiautomator中的text信息

    driver.find_element_by_android_uiautomator('new UiSelector().text("Custom View")').click()         #text
    driver.find_element_by_android_uiautomator('new UiSelector().textContains("View")').click()        #textContains
    driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("Custom")').click()    #textStartsWith
    没有endswith方法
    driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^Custom.*")').click()    #textMatches
    使用正则表达式必须完全匹配,比如上面使用”^Custom”是不正确的

    classname属性的方法

    #className
    driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView").text("Custom View")').click()    
    #classNameMatches
    driver.find_element_by_android_uiautomator('new UiSelector().classNameMatches(".*TextView$").text("Custom View")').click()   

    resourceID属性的方法

    #resourceId
    driver.find_element_by_android_uiautomator('new UiSelector().resourceId("android:id/text1")')   
    #resourceIdMatches
    driver.find_element_by_android_uiautomator('new UiSelector().resourceIdMatches(".*id/text1$")')

    通过contentdescription定位

    driver.find_element_by_android_uiautomator('new UiSelector().description("Custom View")').click()         
    driver.find_element_by_android_uiautomator('new UiSelector().desctiptionContains("View")').click()        
    driver.find_element_by_android_uiautomator('new UiSelector().descriptionStartsWith("Custom")').click()   
    driver.find_element_by_android_uiautomator('new UiSelector().descriptionMatches("^Custom.*")').click()   

    元素的其他属性的方法

    driver.find_element_by_android_uiautomator('new UiSelector().clickable(true).text("Custom View")').click() 

    通过伪xpath方法

    通过UiSelector.fromParent或UiObject.getFromParent方法

    快速查找已知元素的父元素的兄弟信息

    他们的功能是一样的

    Getfromparent方法

    1. save =  new UiObject(new UiSelector().text("Save"));  
    2. assertEquals(save.getText(),"Save");  
    3. delete = save.getFromParent(new UiSelector().text("Delete"));  
    4. assertEquals(delete.getText(),"Delete"); 

    promparent方法

    1. delete = new UiObject(new UiSelector().text("Save").fromParent(new UiSelector().text("Delete")));  
    2. assertEquals(delete.getText(),"Delete");  

    通过UiSelector.childSelector或UiObject.getChild方法

    快速查找在已知元素的子元素

    Getchild方法

    1. UiObject parentView = new UiObject(new UiSelector().className("android.view.View"));  
    2. save = parentView.getChild(new UiSelector().text("Save"));  
    3. assertEquals(save.getText(),"Save");  

    childselector方法

    1. save = new UiObject(new UiSelector().className("android.view.View").childSelector(new UiSelector().text("Save")));  
    2. assertEquals(save.getText(),"Save"); 
  • 相关阅读:
    ASP.NET MVC 3.0(八): MVC 3.0 传递和保存你的Model
    ASP.NET MVC 3.0(十九): MVC 3.0 实例之使用开源控件实现表格排序和分页
    ASP.NET MVC 3.0(十二): MVC 3.0 使用自定义的Html控件
    ASP.NET MVC 3.0(十七): MVC 3.0 实例之表格中数据的筛选
    ASP.NET MVC 3.0 学习系列
    ASP.NET MVC 3.0(五): 入手Controller/Action
    ASP.NET MVC 3.0(十五): MVC 3.0 实例系列之表格的排序
    ASP.NET MVC 3.0(十): MVC 3.0 使用 Forms身份验证
    ASP.NET MVC 3.0(九): MVC 3.0 验证你的Model
    设计功能与界面的测试
  • 原文地址:https://www.cnblogs.com/hellowcf/p/7576217.html
Copyright © 2011-2022 走看看