美文网首页
元素定位

元素定位

作者: 小_小_桂 | 来源:发表于2018-06-21 10:47 被阅读0次

appium 通过 uiautomatorviewer.bat 工具来查看控件的属性。该工具位于 Android SDK 的 /tools/bin/ 目录下。

id 定位

通过uiautomatorviewer.bat 工具可以查看对象的id属性。

如果目标设备的API Level低于18则UIAutomatorViewer不能获得对应的Resource ID,只有等于大于18的时候才能使用。

打开uiautomatorviewer.bat工具:

resource-id 就是我们理解的id属性了。

使用方法:

driver.findElement(By.id("com.android.calculator2:id/formula"))

name 定位

打开uiautomatorviewer.bat工具:

text就是我们要查找的name了,为什么在命名上毫无关联啊!

使用方法:

driver.findElement(By.name("9"))

class name 定位

计算器界面上的的class属性是:android.widget.Button。 使用方法:

WebElement button = driver.findElement(By.className("android.widget.Button"));

使用 Class Name 一般获得的 view 都不止一个,所以应该需要遍历一遍得到的 views,然后缩小搜索条件来获得目标控件。

XPath定位

在 WebDriver 上 XPath 定位是功能强大的一种定位方式。我个人惯用于此方法来定位Web页面上的元素。下面看看在 Android 上 XPath 定位的用法。

用class的属性来替代做标签的名字。

使用方法:

driver.findElement(By.xpath("//android.view.ViewGroup/android.widget.Button"))//7

当果如果出现class 相同的情况下可以用控件的属性值进行区分。

driver.findElement(By.xpath("//android.widget.Button[contains(@text,'7')]")).click();//7driver.findElement(By.xpath("//android.widget.Button[contains(@content-desc,'times')]")).click();//*driver.findElement(By.xpath("//android.widget.Button[contains(@text,'7')]")).click();//7driver.findElement(By.xpath("//android.widget.Button[contains(@content-desc,'equals')]")).click();//=

XPath 在 Appium 上的用法依然很强大,有时需要写更臭更长的定位语法,因为APP上元素的class命令本来就长,再加上多层级,结果可想而知。

Accessibility ID定位

这个方法属于Appium扩展的定位方法。

其实,我们的核心是要找到元素的contentDescription属性。它就是元素的 content-desc 。

使用方法:

driver.findElementByAccessibilityId("plus").click();

android uiautomator定位

这个方法也属于 Appium(Android)扩展的定位方法。同样使用 UIAutomatorViewer.bat 工具直接查看。

也就是说一个元素的任意属性都可以通过android uiautomator方法来进行定位,但要保证这种定位方式的唯一性。

使用方法:

driver.findElementByAndroidUIAutomator("new UiSelector().text(\"clr\")").click();driver.findElementByAndroidUIAutomator("new UiSelector().text(\"8\")").click();driver.findElementByAndroidUIAutomator("new UiSelector().description(\"plus\")").click();driver.findElementByAndroidUIAutomator("new UiSelector().text(\"5\")").click();driver.findElementByAndroidUIAutomator("new UiSelector().description(\"equals\")").click();

需要注意的是 description() 方法用的是content-desc属性。

备注:此篇转的虫师的文章,原文地址:http://www.testclass.net/appium/appium-base-find-element/

相关文章

  • CSS定位

    定位 相对定位 元素框会偏移。 元素保持原状 元素还占原位CSS 相对定位.png 绝对定位 元素框会偏移 元素保...

  • 总结css垂直居中的几种方式,实用

    1.很实用,父元素相对定位,子元素绝对定位 2.父元素相对定位,子元素绝对定位,利用margin。 /*设定水平和...

  • 子元素相对于父元素的绝对定位

    1、参照定位的元素必须是相对定位元素的父元素 2、参照定位的元素必须加入position:relative; 3、...

  • xpath 一些函数的运用

    1,normalize-space(@元素属性)= “定位元素” (去除元素的空格) 2,count (定位元素)...

  • appium元素定位

    appium提供了许多元素定位的方法,如id定位、name定位、class定位、层级定位等。 元素定位方式 id...

  • 定位09-11

    定位 通过position属性来设置元素的定位-可选值: 相对定位: 绝对定位: 固定定位: eg: 元素的层级 ...

  • Day06

    今天学到了什么? 一、定位 1.相对定位(父元素) 2.绝对定位(子元素) 3.固定定位 固定定位效果图 二、元素...

  • 简单介绍CSS定位position属性

    定位 position 属性规定元素的定位类型说明这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过...

  • CSS z-index

    当对多个元素同时设置定位时,定位元素可能会发生重叠。想要调整重叠定位元素的堆叠顺序,可以对定位元素应用z-inde...

  • 元素定位

    appium 通过 uiautomatorviewer.bat 工具来查看控件的属性。该工具位于Android S...

网友评论

      本文标题:元素定位

      本文链接:https://www.haomeiwen.com/subject/ewkqyftx.html