Appium 元素定位

元素定位

uiautomatorviewer是SDK自带的一个APP元素查看工具,通过这个工具我们可以查看一下App view上面的元素的属性,辅助我们编写元素定位相关代码。

UIAutomatorViewer如何使用

  • 将测试机连接到电脑上,并且将被测试的App签名后安装的测试机上。
  • 打开我们安装的SDK文件夹,在\sdk\tools下找到批处理文件uiautomatorviewer.bat,运行这个文件

  • find_elements方法讲解

    常用的几种定位方法:

    直接文本定位

    driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Add note\")");
    

    元素定位方式介绍分析:

    通过id定位

      driver.findElement(By.id("com.eebochina.ehr:id/btn_cancel"));
    

    通过name定位

      driver.findElement(By.name("取消"));
    

    通过className定位

      driver.findElement(By.className("android.widget.TextView"));
    

    通过xpath定位

     driver.findElementByXPath("//android.widget.TextView[@resource-id=\"com.eebochina.ehr:id/btn_cancel\"]");
    

    List遍历:

     List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.TextView");
            textFieldsList.get(0).sendKeys("Some Name");
            textFieldsList.get(2).sendKeys("Some@example.com");
            driver.findElementByName("Save").click();
    

    LinkText

    driver.findElementByClassName("android.widget.TextView");
    

    定位不到怎么办?

    desc

    driver.findElementByAndroidUIAutomator("new UiSelector().descriptionContains(\""+name+"\")");
    

    组合定位:

    driver.findElement(By.className(className)).findElements(By.tagName("tagname is me")).get(i)
    
    driver.findElement(By.className(className)).findElements(By.id("id is me")).get(i)
    
    driver.findElement(By.className(className)).findElements(By.name("name is me")).get(i)
    

    List遍历判断:

        List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
               for(int i=0;i<textFieldsList.size();i++)    {
                     if(textFieldsList.get(i).equals("value")){
                         textFieldsList.get(i).click();
                     }    
               }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值