我們之前一直都是使用 UI Automator Viewer 來查看選擇元素的,如果你們愿意的話還可以用 Appium desktop 里面自帶的一個查看元素的工具叫 Inspector 。打開這個查看元素工具首先要確保 Appium Server 要運行起來。然后點擊這個按鈕。

點擊之后,打開是這個頁面。

這個工具也可以用來查看界面,但是它查看界面有點麻煩的地方是什么呢?需要我們手動創(chuàng)建一個 session,其實也就是一個客戶端,和 appium server 連接。需要在Desired Capabilities 里面填入一些參數(shù)。其實就是設(shè)定這些信息。
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7'
desired_caps['deviceName'] = 'test'
# desired_caps['app'] = r'd:\apk\toutiao.apk'
desired_caps['appPackage'] = 'io.manong.developerdaily'
desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity'
# desired_caps['unicodeKeyboard'] = True
desired_caps['noReset'] = True
desired_caps['newCommandTimeout'] = 6000
把這些填寫進去:

填寫之后,我們可以點擊 Save as...保存一下方便下次使用。

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

選擇我們保存的信息,然后點擊 StartSession 。

這里就啟動起來了。

比如我們想查看發(fā)現(xiàn),我們就點它。

這兩種元素各有優(yōu)缺點,Inspector 感覺沒有 UI Automator Viewer 穩(wěn)定,界面也沒有 UI Automator Viewer 清晰,第一次用的時候比較麻煩需要填寫參數(shù)??傮w上還不錯。 如果我們手機切換了界面,比如進入了我的界面可以點擊

刷新按鈕刷新,有的人會說這個跟 UI Automator Viewer 一樣嗎,其實它還有一個模式的選擇,假如說你選擇了 Tap By Coordinates 模式。

這個時候你就不需要在手機上點了,直接在界面上點,就進入到了一個操作的模式,這個時候再去操作某個元素,就不用在手機上點了,這個時候界面就會自動刷新了。這是它一個優(yōu)點,它還有一個優(yōu)點就是元素的 id 就是 resource-id 它直接標(biāo)注在樹上。

這樣有什么好處?我們找元素的時候我們經(jīng)常要干的事情是什么?就是如果這個元素本身沒有 id 或者他的 id 重復(fù),那我就找上層節(jié)點有沒有 id 的,上層節(jié)點有沒有 id 在原來的 UI Automator Viewer 找的時候比較麻煩,需要一層層往上找,一個個點一個個的去看。inspector 特別好的地方是, 如果元素有 id , 直接就在樹的節(jié)點里面添加了,不用一個個點過去看。它還有一個最大的好處是什么呢?比如這個id 怎么判斷有沒有重復(fù)呢,在 UI Automator Viewer 沒什么特別好的方法,需要導(dǎo)出來。但是在 inspector 里面就有這個好處,它可以把你 id 的表達式拿來判斷,舉個例子,我們點擊發(fā)現(xiàn)發(fā)現(xiàn)它是有 id 的。

因為現(xiàn)在我們也不知道它是不是唯一的,先把它拷貝下來。然后點擊 Search for element 按鈕。

只后彈出這個窗口,我們是根據(jù) id 去找所以 Locator Strategy: 選擇 id ,然后輸入拷貝的內(nèi)容之后點擊 Search。

就會發(fā)現(xiàn)這里面有6個同樣的 id 。所以就不是唯一的。

同樣的也可以根據(jù) XPath 去找。自己可以試一下這樣可以節(jié)省不少的時間。