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

IOS自動(dòng)化測(cè)試元素定位

這篇具有很好參考價(jià)值的文章主要介紹了IOS自動(dòng)化測(cè)試元素定位。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、元素屬性介紹
? 1、元素屬性
? 2、查看各定位方式執(zhí)行效率

二、iOS常用定位方法
? 1、accessibility_id
? 2、class_name
? 3、Xpath
? 4、ios_class_chain(類(lèi)型鏈)
? 5、ios_predicate(謂詞)


一個(gè)頁(yè)面最基本組成單元是元素,想要定位一個(gè)元素,我們需要特定的信息來(lái)說(shuō)明這個(gè)元素的唯一特征。

一、元素屬性介紹 ?

iOS自動(dòng)化元素查找工具,我使用的是Appium的inspector。最新版的appium自動(dòng)展示多種元素定位表達(dá)式,還可以查看每種定位表達(dá)式的執(zhí)行效率。

? 1、元素屬性
type
元素類(lèi)型,與className作用一致,如:XCUIElementTypeButton

value
一般不用

name
元素的文本內(nèi)容,可用作 AccessibilityId定位方式,如:ClearEmail

label
絕大多數(shù)情況下,與 name 作用一致

enabled
元素是否可點(diǎn)擊,一般值為true或者false

visible

元素是否可見(jiàn),一般值為true或者false

? 2、查看各定位方式執(zhí)行效率
? Appium的inspector功能中,選擇某個(gè)元素后在“selected Element”中會(huì)展示多個(gè)定位表達(dá)式,而且點(diǎn)擊定位表達(dá)式后面的“Get Timing”,可以顯示每個(gè)定位表達(dá)式的執(zhí)行時(shí)間。

二、iOS常用定位方法

? 1、accessibility_id


? iOS自動(dòng)化測(cè)試元素定位的accessibility_id主要使用元素的label或name(兩個(gè)屬性的值都一樣)屬性進(jìn)行定位。

? 例如:第一張截圖中l(wèi)abel或name都是“我的功能”

driver.find_element_by_accessibility_id("我的功能")
driver.find_element(MobileBy.ACCESSIBILITY_ID, ?"我的功能")

? 2、class_name


? class_name定位方法使用元素的type屬性,type屬性表示控件類(lèi)型,一般不具有唯一性,因此class_name不常用。

? 例如:type屬性為:XCUIElementTypeButton

driver.find_element_by_class_name("XCUIElementTypeButton")
driver.find_element(MobileBy.CLASS_NAME, "XCUIElementTypeButton")

? 3、Xpath ?

Appium對(duì)app原生環(huán)境的xpath定位方法執(zhí)行效率很低,從iOS 10開(kāi)始使用的 XCUITest 框架原生不支持,定位速度很慢,官方不推薦這種方式。但是在實(shí)際使用中,當(dāng)其他定位方式都不能找到元素時(shí),可以嘗試xpath定位。

? 例如:第一張截圖中“我的功能”定位
driver.find_element_by_xpath("http://XCUIElementTypeStaticText[@name='我的功能']")
driver.find_element(MobileBy.XPATH, "http://XCUIElementTypeStaticText[@name='我的功能']")

? 4、ios_class_chain(類(lèi)型鏈)


? ios_class_chain僅支持iOS 10或以上,且僅限于WebDriverAgent 框架中使用。此方法用于替代xpath,但該方法還有待完善,沒(méi)有納入官方文檔。
? Github說(shuō)明地址:https://github.com/appium/appium-xcuitest-driver

? 例如:第一張截圖中“我的功能”定位

driver.find_element_by_ios_class_chain('**/XCUIElementTypeStaticText[`label == "我的功能"`]')
driver.find_element(MobileBy.IOS_CLASS_CHAIN, '**/XCUIElementTypeStaticText[`label == "我的功能"`]')

? 5、ios_predicate(謂詞)


? iOS Predicate 即謂詞邏輯。ios_predicate定位方法支持iOS所有的版本,也就是能適配XCUITest 和 UIAutomation底層測(cè)試框架,使用的就是iOS編程語(yǔ)言,因此可以把此方法作為首選定位方式。

? 謂詞表達(dá)式由屬性、運(yùn)算符和值構(gòu)成。

? ?1.1、常用的屬性

? ?在上面的表格中已經(jīng)介紹,可以使用的元素屬性:type、value、name、label、enabled、visible

? ?1.2、運(yùn)算符

? ?1.2.1、比較運(yùn)算符

?? ?比較運(yùn)算符 ?>, <, ==, >=, <=, !=

? ?可用于數(shù)值和字符串的比較,如:label == ‘我的功能’,label >= 500

? ?示例:
driver.find_element_by_ios_predicate("label == '我的功能'")
driver.find_element(MobileBy.IOS_PREDICATE, "label == '我的功能'")
driver.find_element_by_ios_predicate("type == 'XCUIElementTypeButton' AND value == 'ClearEmail'")

IOS自動(dòng)化測(cè)試元素定位,Appium自動(dòng)化,自動(dòng)化測(cè)試,macos,objective-c
? ?
? ?1.2.2、范圍運(yùn)算符

? ?常用的范圍運(yùn)算符有:

IOS自動(dòng)化測(cè)試元素定位,Appium自動(dòng)化,自動(dòng)化測(cè)試,macos,objective-c
? ?示例:
driver.find_element(MobileBy.IOS_PREDICATE, "name IN {'id_cell', 'id_alert'}")
driver.find_element_by_ios_predicate("value BETWEEN {5, 7}")
? ?
? ?1.2.3、字符串相關(guān)

IOS自動(dòng)化測(cè)試元素定位,Appium自動(dòng)化,自動(dòng)化測(cè)試,macos,objective-c
? ?以字符串“自動(dòng)化軟件測(cè)試”為例:

包含某個(gè)字符串:label CONTAINS ‘軟件’
以某個(gè)字符串開(kāi)頭:label BEGINSWITH ‘自動(dòng)’
以某個(gè)字符串結(jié)束:label ENDSWITH ‘測(cè)試’

? 擴(kuò)展:在三個(gè)關(guān)鍵字后加上[c]、或者[d]、[cd]
[c]:表示不區(qū)分大小寫(xiě),可用于字母的校驗(yàn);
[d]:不區(qū)分發(fā)音符號(hào),即沒(méi)有重音符號(hào)($、#等);
[cd]:既不區(qū)分大小寫(xiě),也不區(qū)分發(fā)音符號(hào);

? ?例如:name CONTAINS[c] ABcd 和 ?name CONTAINS abcd是等同的

? ?示例:

driver.find_element_by_ios_predicate("label CONTAINS ‘軟件’")
? ?
? ?1.2.4、模糊匹配:LIKE

? ?模糊匹配也可以稱(chēng)為通配符匹配,?代表一個(gè)字符,*代表多個(gè)字符。
? ?示例:現(xiàn)有元素的label屬性:“自動(dòng)化軟件測(cè)試”
? ?label LIKE ‘自動(dòng)化軟件測(cè)試’ ? # 完全匹配
? ?label LIKE ‘自動(dòng)化?件測(cè)試’ ? ?# ? 匹配一個(gè)字符
? ?label LIKE ‘自動(dòng)化??測(cè)試’ ? ?# 兩個(gè)?號(hào)匹配兩個(gè)字符
? ?label LIKE ‘自?化?件測(cè)試’
? ?label LIKE ‘*軟件測(cè)試’ ? ? ?# *代表多個(gè)字符
? ?label LIKE ‘自動(dòng)化軟件*’
? ?label LIKE ‘自動(dòng)化*件測(cè)*’

? ?示例:
driver.find_element(MobileBy.IOS_PREDICATE, "label LIKE ‘*軟件測(cè)試")
? ?
? ?1.2.5、邏輯運(yùn)算符

IOS自動(dòng)化測(cè)試元素定位,Appium自動(dòng)化,自動(dòng)化測(cè)試,macos,objective-c
? ?1.2.6、正則表達(dá)式:MATCHES

? ?以字符串的匹配為例:匹配字符串“自動(dòng)化軟件測(cè)試”,以“自”開(kāi)頭,然后以“試”結(jié)尾。

? ?表達(dá)式:label MATCHES ‘^自.+試$’

? ?示例:
driver.find_element(MobileBy.IOS_PREDICATE, " label MATCHES ‘^自.+試$’")
? ??
?? ?符號(hào)說(shuō)明: ^ ?匹配字符串的開(kāi)頭
? ? ? ? ? ?. ? 匹配任意字符,除了換行符
? ? ? ? ? ?+ ?匹配 1 個(gè)或多個(gè)的表達(dá)式。
? ? ? ? ? ?$ ?匹配字符串的末尾
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-800547.html

到了這里,關(guān)于IOS自動(dòng)化測(cè)試元素定位的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

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

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

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

    2024年02月17日
    瀏覽(26)
  • app自動(dòng)化測(cè)試之Appium問(wèn)題分析及定位

    app自動(dòng)化測(cè)試之Appium問(wèn)題分析及定位

    使用 Appium 進(jìn)行測(cè)試時(shí),會(huì)產(chǎn)生大量日志,一旦運(yùn)行過(guò)程中遇到報(bào)錯(cuò),可以通過(guò) Appium 服務(wù)端的日志以及客戶(hù)端的日志分析排查問(wèn)題。 Appium Server日志-開(kāi)啟服務(wù) 通過(guò)命令行的方式啟動(dòng) Appium Server,下面來(lái)分析一下啟動(dòng)日志,日志第一行顯示了 Appium 版本信息和服務(wù)在本地的運(yùn)行

    2024年02月14日
    瀏覽(28)
  • 2023主流技術(shù) Appium+IOS 自動(dòng)化測(cè)試環(huán)境搭建

    2023主流技術(shù) Appium+IOS 自動(dòng)化測(cè)試環(huán)境搭建

    關(guān)于Appium for IOS Appium是目前最主流的app自動(dòng)化測(cè)試技術(shù),能夠同時(shí)支持IOS、Android平臺(tái)上的移動(dòng)應(yīng)用自動(dòng)化測(cè)試,能支持眾多語(yǔ)言,包括:Java、Python、Ruby、JavaScript等;并且Appium是開(kāi)源免費(fèi)使用的。 目前網(wǎng)上的關(guān)于Appium的學(xué)習(xí)教程絕大多數(shù)以Android為主,關(guān)于IOS端的比較少,而

    2024年02月11日
    瀏覽(22)
  • 全網(wǎng)最細(xì)最全Appium自動(dòng)化測(cè)試 iOS入門(mén)教程,App自動(dòng)化測(cè)試教程,精細(xì)整理

    全網(wǎng)最細(xì)最全Appium自動(dòng)化測(cè)試 iOS入門(mén)教程,App自動(dòng)化測(cè)試教程,精細(xì)整理

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

    2024年02月07日
    瀏覽(59)
  • Windows系統(tǒng)上運(yùn)行appium連接iOS真機(jī)自動(dòng)化測(cè)試

    Windows系統(tǒng)上運(yùn)行appium連接iOS真機(jī)自動(dòng)化測(cè)試

    步驟: 1、windows安裝 tidevice 工具 2、Mac系統(tǒng)打包安裝WebDriverAgent(WDA)工具 3、安裝Appium 4、連接iOS手機(jī) iOS自動(dòng)化的實(shí)現(xiàn)和執(zhí)行都依賴(lài)Mac系統(tǒng),因?yàn)樾枰ㄟ^(guò)Xcodebuild編譯安裝WDA (WebDriverAgent)到iOS設(shè)備中,通過(guò)WDA實(shí)現(xiàn)對(duì)被測(cè)應(yīng)用進(jìn)行操作。而Windows系統(tǒng)無(wú)法運(yùn)行Xcode工具,所以無(wú)法

    2024年04月25日
    瀏覽(21)
  • iOS+Appium最簡(jiǎn)單的環(huán)境搭建,快速實(shí)現(xiàn)真機(jī)自動(dòng)化測(cè)試

    iOS+Appium最簡(jiǎn)單的環(huán)境搭建,快速實(shí)現(xiàn)真機(jī)自動(dòng)化測(cè)試

    整理不易耗時(shí)兩星期配置成功,查看一兩年前的教程文章走了太多彎路到處都是坑和報(bào)錯(cuò) 需配置環(huán)境:Homebrew、node、cnpm、Carthage、ios-deploy、libimobiledeviceideviceinstaller,Xcode,appiumWebDriverAgent,appium Inspector 1. Homebrew安裝 Homebrew簡(jiǎn)稱(chēng)brew,是Mac上的軟件管理工具(卸載和安裝),和

    2023年04月27日
    瀏覽(18)
  • python ui自動(dòng)化測(cè)試元素定位常用語(yǔ)法

    第一部分是css樣式定位方法 選擇器 示例 示例說(shuō)明 CSS . class .intro 選擇所有class=\\\"intro\\\"的元素 1 # id #firstname 選擇所有id=\\\"firstname\\\"的元素 1 * * 選擇所有元素 2 element p 選擇所有p元素 1 element,element div,p 選擇所有div元素和p元素 1 element ? element div p 選擇div元素內(nèi)的所有p元素 1 element

    2024年02月13日
    瀏覽(33)
  • web自動(dòng)化測(cè)試入門(mén)篇06 —— 元素定位進(jìn)階技巧

    web自動(dòng)化測(cè)試入門(mén)篇06 —— 元素定位進(jìn)階技巧

    ? ?? 作者簡(jiǎn)介:博主是一位測(cè)試管理者,同時(shí)也是一名對(duì)外企業(yè)兼職講師。 ?? 主頁(yè)地址:【Austin_zhai】 ?? 目的與景愿:旨在于能幫助更多的測(cè)試行業(yè)人員提升軟硬技能,分享行業(yè)相關(guān)最新信息。 ?? 聲明:博主日常工作較為繁忙,文章會(huì)不定期更新,各類(lèi)行業(yè)或職場(chǎng)問(wèn)題

    2024年02月05日
    瀏覽(30)
  • 【selenium自動(dòng)化測(cè)試】如何定位頁(yè)面元素,及對(duì)頁(yè)面元素的操作方法

    【selenium自動(dòng)化測(cè)試】如何定位頁(yè)面元素,及對(duì)頁(yè)面元素的操作方法

    selenium元素定位 ?selenium定位元素的方式有8種。 fild_element(by,value):by表示使用的定位方式,定位方式可以參見(jiàn)By類(lèi)。value表示值,例如:根據(jù)id定位 By.ID,value=id屬性的值。該方法返回元素對(duì)象,返回值如下: 這個(gè)返回結(jié)果說(shuō)明:返回值為WebElement類(lèi)的對(duì)象,元素在使用方法時(shí)

    2024年02月10日
    瀏覽(28)
  • web自動(dòng)化測(cè)試(java+seleium)元素定位,全屏截圖

    示例 根據(jù)元素的id屬性來(lái)定位元素 根據(jù)元素的name屬性來(lái)定位元素,但是注意name的屬性值在當(dāng)前文檔中可以不是唯一的 通過(guò)class定位 通過(guò)tag進(jìn)行定位,tag定位比較模糊,多用于標(biāo)題等特殊標(biāo)簽 定位超鏈接文本(文本值) 模糊的link_text定位 能夠?qū)崿F(xiàn)路徑定位(絕對(duì)路徑,相對(duì)路徑

    2024年02月08日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包