国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

『App自動化測試之Appium應用篇』| 元素定位工具uiautomatorviewer從簡介、特點、啟動到使用的完整過程

這篇具有很好參考價值的文章主要介紹了『App自動化測試之Appium應用篇』| 元素定位工具uiautomatorviewer從簡介、特點、啟動到使用的完整過程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 uiautomatorviewer簡介

  • 之前文章說明了Appium Inspector的定位使用方法;
  • uiautomatorviewer是另一種定位工具;
  • uiautomatorviewerandroid-sdk自帶的元素定位工具;
  • 它是通過截屏分析XML布局文件方式,來提供控件信息的查看服務。

2 uiautomatorviewer特點

  • uiautomatorviewerAppium Inspector有著明顯的區(qū)別;
  • Appium Inspector功能相對比較強大;
  • uiautomatorviewer只能用于安卓系統(tǒng);
  • 另外uiautomatorviewer只能用于元素定位,不支持通過該工具操作APP,也不支持錄制功能等。

3 uiautomatorviewer啟用

  • uiautomatorviewer位于SDK目錄下的tools\目錄下;
  • 比如我的是:D:\android-sdk-windows\tools
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化
  • 雙擊uiautomatorviewer.bat進行啟動即可:
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化

4 Work Bar

  • Work Bar即工作欄,工作欄中有4個按鈕,如圖所示:
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化

  • 從左到右依次為:

圖標 名稱 說明
1 Open 打開已保存的布局
2 Device Screenshot(uiautomator dump) 獲取詳細布局
3 Device Screenshot with Cpmpressed Hierarchy (uiautomator dump) 獲取簡介布局
4 Save 保存布局
  • 其中4保存時將保存兩個文件,一個是圖片,一個是.uix文件;
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化
  • 可以查看圖片顯示:
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化
  • 也可以查看XML格式內容:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy rotation="0">
    <node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][768,1184]">
        <node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][768,1184]">
            <node index="0" text="" resource-id="android:id/content" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][768,1184]">
                <node index="0" text="" resource-id="com.android.launcher3:id/launcher" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][768,1184]">
                    <node index="0" text="" resource-id="com.android.launcher3:id/drag_layer" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][768,1184]">
                        <node index="0" text="" resource-id="com.android.launcher3:id/workspace" class="com.android.launcher3.Workspace" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="true" long-clickable="false" password="false" selected="false" bounds="[0,0][768,1184]">
                            <node index="1" text="" resource-id="" class="android.view.ViewGroup" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[8,184][760,976]">
                                <node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[8,184][760,976]">
                                    <node index="0" text="QQi" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="QQi" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[8,184][196,382]" />
                                    <node index="1" text="Settings" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="Settings" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[384,778][572,976]" /></node>
                                <node index="1" text="" resource-id="" class="android.view.View" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[8,184][220,406]" /></node>
                        </node>
                        <node index="1" text="" resource-id="com.android.launcher3:id/search_drop_target_bar" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][768,184]">
                            <node index="0" text="" resource-id="" class="android.appwidget.AppWidgetHostView" package="com.android.launcher3" content-desc="Search" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][768,184]">
                                <node index="0" text="" resource-id="" class="android.widget.RelativeLayout" package="com.android.quicksearchbox" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][768,184]">
                                    <node index="0" text="" resource-id="com.android.quicksearchbox:id/search_plate" class="android.widget.LinearLayout" package="com.android.quicksearchbox" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][768,184]">
                                        <node NAF="true" index="0" text="" resource-id="com.android.quicksearchbox:id/search_icon" class="android.widget.ImageView" package="com.android.quicksearchbox" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[19,68][115,164]" />
                                        <node NAF="true" index="1" text="" resource-id="com.android.quicksearchbox:id/search_widget_text" class="android.widget.TextView" package="com.android.quicksearchbox" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[115,79][740,153]" /></node>
                                </node>
                            </node>
                        </node>
                        <node index="3" text="" resource-id="com.android.launcher3:id/page_indicator" class="android.widget.LinearLayout" package="com.android.launcher3" content-desc="Home screen 2 of 2, Settings" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[360,992][408,1016]">
                            <node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[360,992][384,1016]">
                                <node index="1" text="" resource-id="com.android.launcher3:id/inactive" class="android.widget.ImageView" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[360,992][384,1016]" /></node>
                            <node index="1" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[384,992][408,1016]">
                                <node index="0" text="" resource-id="com.android.launcher3:id/active" class="android.widget.ImageView" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[384,992][408,1016]" /></node>
                        </node>
                        <node index="4" text="" resource-id="com.android.launcher3:id/hotseat" class="android.widget.FrameLayout" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,1016][768,1184]">
                            <node index="0" text="" resource-id="com.android.launcher3:id/layout" class="android.view.ViewGroup" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[0,1016][768,1184]">
                                <node index="0" text="" resource-id="" class="android.view.View" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[24,1016][192,1184]" />
                                <node index="1" text="" resource-id="" class="android.view.ViewGroup" package="com.android.launcher3" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[24,1016][768,1184]">
                                    <node index="0" text="Phone" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="Phone" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[29,1022][163,1178]" />
                                    <node index="1" text="Contacts" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="Contacts" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[173,1022][307,1178]" />
                                    <node index="2" text="" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="Apps" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[317,1022][451,1178]" />
                                    <node index="3" text="Messaging" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="Messaging" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[461,1022][595,1178]" />
                                    <node index="4" text="Browser" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="Browser" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[605,1022][739,1178]" /></node>
                            </node>
                        </node>
                    </node>
                </node>
            </node>
        </node>
    </node>
</hierarchy>
  • 其中2會顯示全部布局;
  • 其中3只顯示部分有用的控件布局。

5 Screenshot

  • screenshot是截圖區(qū)域,在圖中的左側部分;
  • 主要是顯示當前屏幕的布局圖片:
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化

6 控件布局

  • 控件布局內容主要在右上方顯示,以XML格式展示;
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化

7 控件屬性

  • 控件屬性顯示在右下方,當點擊一個控件時,將會在這顯示其屬性信息:
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化

8 連接設備

  • 直接點擊工作欄中的第二個或第三個按鈕即可連接到設備;
  • 我們這里點擊的是第二個按鈕Device Screenshot;
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化

9 Error while obtaining UI問題排查

  • 當我們點擊第二個按鈕Device Screenshot時出現以下界面:
    uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化
  • 這個說明報錯了,沒有連接上,那我們看下詳細信息,點擊【Details】:
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
  • 大概意思是Remote object doesn't exist,就是說已經存在了一個連接,那我們就需要斷開已經連接的才行;
  • 我們檢查發(fā)現使用了Appium-Inspector已經連接了,我們點擊【×】斷開這個會話連接:

uiautomatorviewer工具,# Appium,appium,移動端自動化測試,app自動化文章來源地址http://www.zghlxwxcb.cn/news/detail-773589.html

  • 重新再連接就可以使用uiautomatorviewer連接上了。

到了這里,關于『App自動化測試之Appium應用篇』| 元素定位工具uiautomatorviewer從簡介、特點、啟動到使用的完整過程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • APP自動化測試(2)-通過appium打開手機的應用

    APP自動化測試(2)-通過appium打開手機的應用

    目錄 一、appium的Capabilities配置及Appium Inspector安裝 1.1安裝Appium Inspector 1.2Capabilities配置 二、獲取手機以及app的信息 2.1獲取連接設計的配置名稱 2.1.1連接手機 2.1.2獲取設備名稱 ?2.2利用adb獲取日志找到appPackage和appActivity? ?三、Start Session 3.1 安裝appium-doctor 3.2解決appium-doctor查出

    2024年02月08日
    瀏覽(62)
  • Appium+python自動化(十一)- 元素定位- 下卷超詳解)

    Appium+python自動化(十一)- 元素定位- 下卷超詳解)

    List故名思義就是一個列表,在python里面也有l(wèi)ist這一個說法,如果你不是很理解什么是list,這里暫且理解為一個數組或者說一個集合。首先一個list是一個集合,那么他的個數也就成了不確定性,所以這里需要用復數,所以在我們定位時我們不能夠接著用find_element_by_id等等定位

    2024年02月17日
    瀏覽(24)
  • App自動化測試|Appium+Python自動化測試環(huán)境搭建

    App自動化測試|Appium+Python自動化測試環(huán)境搭建

    搭建過程步驟如下: 安裝jdk并配置好環(huán)境變量(jdk版本1.8以上) 安裝android-sdk并配置好環(huán)境變量;具體步驟見:Android Studio安裝(推薦使用這種方法安裝SDK) - 環(huán)境配置 - 測試人社區(qū) 安裝安卓模擬器 安裝node.js(官網下載安裝最新版本) ;下載地址:下載 | Node.js 中文網 找到wind

    2024年02月12日
    瀏覽(26)
  • java APP自動化測試AppIum

    java APP自動化測試AppIum

    一、前言 二、Appium環(huán)境搭建 2.1 JDK安裝 2.2 Android SDK安裝配置 2.3 模擬器安裝及配置 2.4 Appium Desktop安裝及使用 2.5 Appium配置連接模擬器 三、實戰(zhàn)基本腳本編寫 3.1 創(chuàng)建Maven項目并配置 3.2 簡單Demo 四、寫在最后 ? 一、 前言 隨著移動互聯(lián)網的發(fā)展,APP上面的測試逐漸的流行起來。

    2024年02月05日
    瀏覽(24)
  • Python +Appium 實現app自動化測試

    Python +Appium 實現app自動化測試

    一、Appium簡介 Appium是一款開源工具,用于自動化iOS、Android和Windows桌面平臺上的本地、移動web和混合應用程序。原生應用是指那些使用iOS、Android或Windows sdk編寫的應用。移動網頁應用是通過移動瀏覽器訪問的網頁應用(appum支持iOS和Chrome上的Safari或Android上的內置“瀏覽器”應用

    2023年04月09日
    瀏覽(16)
  • 【APP自動化測試必知必會】Appium之微信小程序自動化測試

    【APP自動化測試必知必會】Appium之微信小程序自動化測試

    H5 是指第 5 代 HTML ,也指用 H5 語言制作的一切數字產品。 所謂 HTML 是“超文本標記語言”的英文縮寫。我們上網所看到網頁,多數都是由 HTML 寫成的。 “超文本”是指頁面內可以包含圖片、鏈接,甚至音樂、程序等非文字元素。而“標記”指的是 這些超文本必須由包含屬性

    2024年02月09日
    瀏覽(122)
  • IOS自動化測試元素定位

    IOS自動化測試元素定位

    一、元素屬性介紹 ? 1、元素屬性 ? 2、查看各定位方式執(zhí)行效率 二、iOS常用定位方法 ? 1、accessibility_id ? 2、class_name ? 3、Xpath ? 4、ios_class_chain(類型鏈) ? 5、ios_predicate(謂詞) 一個頁面最基本組成單元是元素,想要定位一個元素,我們需要特定的信息來說明這個元素的唯一特

    2024年01月18日
    瀏覽(74)
  • 使用Appium2.0自動化規(guī)模測試APP

    最近做個項目需要測試服務端的并發(fā)性能,客戶端采用安卓,接口數據采用Restul和流媒體播放。由于流媒體的接口并不清楚,所以決定采用安卓虛擬機來模擬。 正好趕上Appium2.0升級,網上的很多資料都不能用了,這里將整個環(huán)境搭建的要點記錄下來與大家分享。 #1. Appium2.0的

    2024年02月08日
    瀏覽(21)
  • APP自動化測試系列之Appium介紹及運行原理

    APP自動化測試系列之Appium介紹及運行原理

    在面試APP自動化時,有的面試官可能會問Appium的運行原理,以下介紹Appium運行原理。 Appium是一個開源測試自動化框架,可用于原生,混合和移動Web應用程序測試。它使用WebDriver協(xié)議驅動IOS,Android和Windows應用程序。 Appium是開源的移動端自動化測試框架; Appium可以測試原生的

    2024年02月13日
    瀏覽(23)
  • 全網最細最全Appium自動化測試 iOS入門教程,App自動化測試教程,精細整理

    全網最細最全Appium自動化測試 iOS入門教程,App自動化測試教程,精細整理

    目錄:導讀 一、MAC電腦上 Appium 的安裝流程 二、流程圖 三、下載AppiumServerGui和AppiumInspector 四、開始測試 ? ? ? 1、真機測試 ? ? ? ? ? ? ? ? 1.1 準備工作 ? ? ? ? ? ? ? ? 1.2 獲取 開發(fā)包 .app 結尾 ? ? ? ? ? ? ? ? 1.3 WebDriverAgent使用 ? ? ? ? ? ? ? ? 1.4 配置 Appium Inspec

    2024年02月07日
    瀏覽(59)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包