Appium 使用 Inspector 查看元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium 使用 Inspector 查看元素相关的知识,希望对你有一定的参考价值。

参考技术A

我们之前一直都是使用 UI Automator Viewer 来查看选择元素的,如果你们愿意的话还可以用 Appium desktop 里面自带的一个查看元素的工具叫 Inspector 。打开这个查看元素工具首先要确保 Appium Server 要运行起来。然后点击这个按钮。

点击之后,打开是这个页面。

这个工具也可以用来查看界面,但是它查看界面有点麻烦的地方是什么呢?需要我们手动创建一个 session ,其实也就是一个客户端,和 appium server 连接。需要在 Desired Capabilities 里面填入一些参数。其实就是设定这些信息。

把这些填写进去:

填写之后,我们可以点击 Save as... 保存一下方便下次使用。

保存之后可以去 Saved Capability Sets (1) 里面查看。

选择我们保存的信息,然后点击 StartSession

这里就启动起来了。

比如我们想查看 发现 ,我们就点它。

这两种元素各有优缺点, Inspector 感觉没有 UI Automator Viewer 稳定,界面也没有 UI Automator Viewer 清晰,第一次用的时候比较麻烦需要填写参数。总体上还不错。 如果我们手机切换了界面,比如进入了 我的 界面可以点击

刷新按钮刷新,有的人会说这个跟 UI Automator Viewer 一样吗,其实它还有一个模式的选择,假如说你选择了 Tap By Coordinates 模式。

这个时候你就不需要在手机上点了,直接在界面上点,就进入到了一个操作的模式,这个时候再去操作某个元素,就不用在手机上点了,这个时候界面就会自动刷新了。这是它一个优点,它还有一个优点就是元素的 id 就是 resource-id 它直接标注在树上。

这样有什么好处?我们找元素的时候我们经常要干的事情是什么?就是如果这个元素本身没有 id 或者他的 id 重复,那我就找上层节点有没有 id 的,上层节点有没有 id 在原来的 UI Automator Viewer 找的时候比较麻烦,需要一层层往上找,一个个点一个个的去看。 inspector 特别好的地方是, 如果元素有 id , 直接就在树的节点里面添加了,不用一个个点过去看。它还有一个最大的好处是什么呢?比如这个 id 怎么判断有没有重复呢,在 UI Automator Viewer 没什么特别好的方法,需要导出来。但是在 inspector 里面就有这个好处,它可以把你 id 的表达式拿来判断,举个例子,我们点击 发现 发现它是有 id 的。

因为现在我们也不知道它是不是唯一的,先把它拷贝下来。然后点击 Search for element 按钮。

只后弹出这个窗口,我们是根据 id 去找所以 Locator Strategy: 选择 id ,然后输入拷贝的内容之后点击 Search

就会发现这里面有 6 个同样的 id 。所以就不是唯一的。

同样的也可以根据 XPath 去找。自己可以试一下这样可以节省不少的时间。

Mac环境下使用Appium Inspector进行元素定位

 一、摘要

本篇博文介绍在Mac系统上使用AppiumI Inspector进行App页面元素定位

二、Finding elements by xpath

技术分享图片

WebElement digit_9 = driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.support.v4.view.viewPager[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.Button[3]"));

 三、Finding elements by name

技术分享图片

WebElement editBox = driver.findElement(By.name("IntegerB"));

四、Finding elements by IosUIAutomation

findElements(By.IosUIAutomation(String IosUIAuto));

这个方法会返回一个元素的数组,我们需要通过索引定位到唯一的元素,例如

WebElement editBox = driver.findElements(By.IosUIAutomation(".elements()[0]"));

WebElement editBox = driver.findElements(By.IosUIAutomation(".textFields()[0]"));

以上是关于Appium 使用 Inspector 查看元素的主要内容,如果未能解决你的问题,请参考以下文章

appium inspector抓取元素录制脚本

Mac环境下使用Appium Inspector进行元素定位

Appium——元素定位

Appium Inspector 无法在 iOS Element Hierarchy 中定位子元素

Appium 定位

Appium1.6 定位iOS元素和操作元素