無論是selenium還是appium,元素定位都是我們開始實現自動化面臨的第一個問題。selenium還好,我們可以在瀏覽器的調試頁面進行元素定位還是蠻方便的。那么appium怎么做呢?
我看到很多資料,帖子都是說的appium自帶的Inspector這個工具進行的元素定位。而筆者不知道是電腦還是什么的問題,這個工具是無法使用的。今天給大家說的是另一個工具。
uiautomatorviewer
這個工具是在我們Android的SDK的tools的文件夾里面的。使用方法也很簡單。這里我以安卓模擬器為例給大家進行講解。
首先打開模擬器,打開到我們需要定位的元素的頁面。然后再tools中雙擊uiautomatorviewer,這個是個批處理的文件,雙擊就可以打開
可以看到這樣的一個畫面。接着點擊上面那兩個帶着小機器人的手機形狀的圖標。我還沒弄清楚這倆有啥區別,不過都可以用來輔助我們定位元素這里先不糾結。
比如,我們現在要定位這一條短信的內容。那么我們就可以通過右邊的text,resource-id,class去定位
這里的text其實就是我們用的方法中的name
只要通過find_element_by_name()然后把text的值寫到括號里就可以了
find_element_by_name("0")
而resource-id實際上就是id
通過find_element_by_id("com.android.mms:id/text_view")也能夠完成這個元素的定位
class呢是classname,這個不是webdriver的方法,是appiumdriver的方法。還可以協助我們進行xpath方法的定位這個下回再說。
這里還有一個東西要講一下就是content-desc
這個實際上是我們python的appium中appiumdriver的另一個方法
find_element_by_accessibility_id("")這個也是元素定位的方法,不過這里是空的所以無法完成定位。
定位的方法還有很多,classname,css,xpath等,這些我們下回再講。目前筆者也是水平較淺只掌握了上面的幾種方法。