黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟

系統 2115 0

簡介

?  環境搭建好了,其他方面的知識也準備的差不多了,那么我們就開始下一步元素定位,元素定位宏哥主要介紹如何使用uiautomatorviewer,通過定位到頁面上的元素,然后進行相應的點擊等操作. 此外在介紹另一款工具:Inspector。

uiautomatorviewer是android-sdk自帶的一個元素定位工具,非常簡單好用,使用uiautomatorviewer,你可以檢查一個應用的UI來查看應用的布局和組件以及相關的屬性。

  那么宏哥先來給各位小伙伴們介紹大哥--uiautomatorviewer,再來介紹小弟--Inspector。

一、大哥--uiautomatorviewer

大哥人物簡介:

大哥是皇族后裔,但是比劉皇叔強多了。人家有一個好爹--Google。

  Android 4.1發布的,uiautomator是用來做UI測試的。也就是普通的手工測試,點擊每個控件元素 看看輸出的結果是否符合預期。比如 登陸界面 分別輸入正確和錯誤的用戶名密碼然后點擊登陸按鈕看看是否能否登陸以及是否有錯誤提示等。

功能性或者黑盒UI測試不需要測試人員了解程序如何實現的,只需要驗證各種操作的結果是否符合預期即可。這樣的測試可以分離團隊的開發人員和測試人員。大家各干各的沒有太多的交集。

  常用的UI測試方式就是人工驗證啦,就是測試人員拿著各種手機分別安裝要測試的程序然后看看是否能正確完成各種預定的功能。但是這種驗證方式是非常耗時間的,每次回歸都要全部驗證一邊,并且還容易出現人為錯誤。比較高效和可靠的UI測試方式就是自動化測試。自動化UI測試創建測試代碼來執行測試任務,各種測試任務分別覆蓋不同的使用場景,然后使用測試框架來運行這些測試任務。而uiautomator 就是你的自動化UI測試工具。

Android SDK在4.1中提供了如下工具來支持UI自動化測試:

  • uiautomatorviewer – 一個圖形界面工具來掃描和分析應用的UI控件。
  • uiautomator – 一個測試的Java庫,包含了創建UI測試的各種API和執行自動化測試的引擎。

要大哥出山也就是使用該工具,需要滿足如下條件:

  • Android SDK Tools, Revision 21 or higher
  • Android SDK Platform, API 16 or higher

一、啟動uiautomatorviewer.bat

兩種啟動方法:

第一種方法:

1、打開目錄D:\software\android-sdk-windows\tools

2、雙擊啟動,啟動之后出現如下界面

?

1、如果不喜歡雙擊啟動的話,也可以在cmd里面通過指令啟動

先cd到tools目錄下,然后輸入uiautomatorviewer.bat回車后啟動服務

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第3張圖片


二、連接手機

1、cmd打開輸入adb devices,確認手機已連上(以夜神模擬器為例)

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第4張圖片

?

2、打開手機淘寶頁面,讓屏幕處于點亮狀態

?

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第5張圖片

?

3、點左上角安卓機器人按鈕Devices Screenshot按鈕刷新頁面

?

1、移動鼠標到需要定位的元素上,如搜索輸入框

2、右下角可以看到元素對應的屬性

text:好沙發需要好坐墊

resource-id:com.taobao.taobao:id/home_searchedit

class:android.widget.EditText

四、點搜索框

1、前面一篇啟動app后,休眠五秒,等待頁面加載完成

2、通過id來定位到搜索框,然后點擊

五、參考代碼

            # coding=utf-
            
              8
            
            
              
# 
            
            
              1
            
            .先設置編碼,utf-
            
              8可支持中英文,如上,一般放在第一行

# 
            
            
              2
            
            
              .注釋:包括記錄創建時間,創建人,項目名稱。

            
            
              '''

            
            Created on 
            
              2019
            
            -
            
              6
            
            -
            
              24
            
            
              
@author: 北京
            
            -宏哥   QQ交流群:
            
              707699217
            
            
              
Project:學習和使用定位元素工具

            
            
              '''

            
            # 
            
              3
            
            
              .導入模塊

            
            
              from
            
            
               appium import webdriver
import time
desired_caps 
            
            =
            
               {}
desired_caps[
            
            
              '
            
            
              platformName
            
            
              '
            
            ] = 
            
              '
            
            
              Android
            
            
              '
            
            
                 #android的apk還是IOS的ipa
desired_caps[
            
            
              '
            
            
              platformVersion
            
            
              '
            
            ] = 
            
              '
            
            
              8.0
            
            
              '
            
            
                #android系統的版本號
desired_caps[
            
            
              '
            
            
              deviceName
            
            
              '
            
            ] = 
            
              '
            
            
              127.0.0.1:62001
            
            
              '
            
            
                  #手機設備名稱,通過adb devices  查看
desired_caps[
            
            
              '
            
            
              appPackage
            
            
              '
            
            ] = 
            
              '
            
            
              com.taobao.taobao
            
            
              '
            
            
                #apk的包名
desired_caps[
            
            
              '
            
            
              appActivity
            
            
              '
            
            ] = 
            
              '
            
            
              com.taobao.tao.welcome.Welcome
            
            
              '
            
            
                #apk的launcherActivity
#desired_caps[
            
            
              '
            
            
              unicodeKeyboard
            
            
              '
            
            ] =
            
               True   #使用unicodeKeyboard的編碼方式來發送字符串
#desired_caps[
            
            
              '
            
            
              resetKeyboard
            
            
              '
            
            ] =
            
               True   #將鍵盤給隱藏起來
driver 
            
            = webdriver.Remote(
            
              '
            
            
              http://127.0.0.1:4723/wd/hub
            
            
              '
            
            
              , desired_caps) #啟動服務器地址,后面跟的是手機信息
# 休眠五秒等待頁面加載完成
time.sleep(
            
            
              5
            
            
              )

driver.find_element_by_id(
            
            
              "
            
            
              com.taobao.taobao:id/home_searchedit
            
            
              "
            
            
              ).click()

# driver.quit()
            
          

?

六、元素定位

1、appium的webdriver提供了11種元素定位方法,在selenium的基礎上擴展了三個,可以在pycharm里面輸入driver.find_element_by然后會自動匹配出來

2、多的三種如下,在后面的會詳細介紹

driver.find_element_by_accessibility_id()

driver.find_element_by_android_uiautomator()

driver.find_element_by_ios_uiautomation()

(第三個是ios的可以暫時不用管)

二、小弟--Inspector

?  小弟人物簡介:

  小弟不是很牛叉,但是小弟的存在必定有小弟存在的必要,之前看了好多文章都要放棄小弟,我覺地不要放棄,沒準小弟可以替大哥大哥擋刀呢,呵呵,說笑了,畢竟過河的卒子可以當車!??!

  Appium Inspector是appium自帶的一個元素定位工具,前邊介紹了如何使用uiautomatorviewer進行元素定位。這里就學習Appium Inspector是如何定位的。

  Appium Inspector 對于測試的同學不得不說是一個神器,可以查詢到我們需要定位的元素的 id 等各種信息 ,還可以 錄制用戶行為,翻譯成腳本。逆天的是可以翻譯成多種語言的腳本。這并不意味著測試的同學可以不用學習語言和編程了,因為機器翻譯出的腳本一般很難一次執行成功,其中很可能還需要經過人工修改后才能順利執行,但是這已經可以為測試腳本的編寫帶來很大的遍歷,所以 Appium Inspector 還是值得我們去學習和使用。

一、設置appium

1、先不要啟動appium,因為啟動以后就不能操作appium設置界面,必須在未啟動的時候進行操作

2、點開android setting界面(機器人圖標)

3、勾選Application Path,添加被測app的路徑

4、Devices name處添加設備名稱(adb devices查看到的)

(注意:通過這種方法也可查看到apk的包名和Launch Activity)

?

二、開啟appium

1、手機確保連接電腦(adb devices查看)(仍然以夜神模擬器為例)

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第12張圖片 ?

?

2、點appium右上角三角形圖標,會啟動服務

?

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第13張圖片

?

3、這時候可以看到手機上安裝淘寶應用,并會啟動淘寶

4、點appium右上角的搜索圖標

?

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第14張圖片

?

5、點Inspector Window界面的 Refresh 按鈕刷新界面

?

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第15張圖片

?

三、Ispector Window

1、手機上打開需要單位元素的界面,然后點Refresh按鈕刷新

2、左邊菜單樹,可以挨個點開

3、如果想單位界面上的“是”和“否”按鈕,從菜單樹就可以看到這兩個元素的結構

四、查看屬性

1、選中左側菜單樹對應的元素,在右下角查看對應屬性

五、常見異常

1、在使用過程中,你會發現經常會報以下這個錯誤

2、每次啟動都會給你手機上重新安裝一次應用

3、并且不能用鼠標指定某個元素,沒有uiautomatorviewer使用方便

(要是以上三種問題你都遇到了,怎么辦???那就放棄吧!?。。?

相信很多人在使用過程中,都會遇到中文無法輸入問題,宏哥在后續文章里會手把手教大家如何輸入中文。

三、小結

Android SDK中的UIAutomator中本身是不支持網頁中的UI元素定位,下面介紹幾種常用的定位app內部的網頁的UI元素的方法。

一、使用chrome瀏覽器調試移動端網頁

? ? ? ?這是使用最多的一種方法。首頁確保自己的手機已經跟電腦連接且處于開發者模式。

? ? ? ?打開PC端的谷歌瀏覽器,輸入chrome://inspect/#devices,會看到下圖所示界面:

? ? ?? Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第18張圖片

? ? ?點擊需要測試的網頁下方的inspect,且保證手機界面停留在那個頁面。

? ? ?? Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第19張圖片

?

? ? ? 這樣打開后是不是就熟悉了,點擊上方紅色標記的就可以操作進行定位了~~~

?

?二、Android手機的鋪助功能帶有TalkBack

? ? ? ? 之前一直用的是谷歌的方法,但是最近發現使用talkback可以直接用UIAutomator定位元素。??

? ? ? ? Android系統一般自帶一個TalkeBack功能。但這里千萬要注意:打開之后整個系統的操作都變得不同了?。』瑒咏缑嫘枰獌蓚€手指,單擊變成雙擊。打開之后用UiAutomatorViewer獲取webview界面的內容,你就會發現原來webview里面獲取不到的ui元素,現在已經可以可以獲取到了。即使現在你關掉TalkBack,也能獲取到,除非重啟手機才會回到不能獲取的狀態,所以開啟后我們可以立即關閉,以方便操作。有些手機沒有talkBack的可以去應用市場下載。

? ? ? ?功能路徑:
? ? ? ?原生系統:設置 – 輔助功能(Accessibility) – TalkBack
? ? ? ?華為EMUI系統:設置 – 高級設置 – 輔助功能 – TalkBack

三、宏哥在小弟哪里遇到的問題

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第20張圖片

?

查看appium日志的error發現沒有設備名字報錯

?

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第21張圖片

將夜神模擬器的名字加上就成功了

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第22張圖片

宏哥不能保證所整理都符合大家的口味,但我能保證每一篇都是用心去寫和用心去整理,我始終認同“分享的越多,你的價值增值越大”,歡迎大家關注我的博客和個人公眾號的技術分享。在分享中進步,越努力越幸運,期待我們都有美好的明天!

支持宏哥的朋友們和宏哥的宏粉記得點波推薦哦,您的肯定就是我進步的動力。鄙人先在這里給您道謝了,謝您嘞~~ Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第23張圖片

個人公眾號(因為許多文章都被搬到別人的公眾號里了,還是原創,所以宏哥果斷也開一個公眾號。打算與博客園文章同步,希望大家隨時隨地學習與進步):

Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第24張圖片

微信群(因為有人給我發短消息說公司不讓用QQ,就幫忙建立一個微信群,歡迎加入討論和交流)

? Appium+python自動化(九)- 定位元素工具(義結金蘭的兩位異性兄弟)(超詳解)_第25張圖片

我的博客即將同步至騰訊云+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2k3h2stkvscgc


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論