Appium 元素定位

来源:互联网 发布:java生成log日志文件 编辑:程序博客网 时间:2024/05/01 02:16

元素定位

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();                 }               }
0 0
原创粉丝点击