欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

appium常用元素定位技巧是什么-創(chuàng)新互聯(lián)

本篇內容介紹了“appium常用元素定位技巧是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,先為靈壽等服務建站,靈壽等地企業(yè),進行企業(yè)商務咨詢服務。為靈壽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

Appium對于處理原生的android應用直接通過uiautomatorviewer.bat這個工具來獲取元素定位。

在開始appium元素定位的話題之前,首先讓我們了解下appium的一些基礎知識:

一、測試對象

appium 是一個自動化測試開源工具,支持iOS和 Android平臺上的原生應用,web應用和混合應用。

移動原生應用:單純用ios或者android開發(fā)語言編寫的、針對具體某類移動設備、可直接被安裝到設備里的應用,一般可通過應用商店獲取;

移動web應用:使用移動瀏覽器訪問的應用(appium支持iOS上的Safari和Android上的 Chrome),不需要下載到設備上,而是通過瀏覽器直接訪問;

混合應用:同時使用網(wǎng)頁語言與程序語言開發(fā),通過應用商店區(qū)分移動操作系統(tǒng)分發(fā),用戶需要安裝使用的移動應用。

二、支持平臺及語言

appium是跨平臺的,支持OSX,Windows以及Linux系統(tǒng)。它允許測試人員在不同的平臺(iOS,Android)使用同一套API來寫自動化測試腳本,這樣大大增加了iOS和Android測試套件間代碼的復用性 

appium支持多語言,采用C/S設計模式,只要滿足client能夠發(fā)送http請求給server即可

三、元素定位

1.格式:find_element_by_定位方式(value)

我根據(jù)手機自帶的計算器來解釋

appium常用元素定位技巧是什么

通過id定位

通過工具獲取到按鈕的 resource-id

driver.find_element_by_id('resource-id')

實例: driver.find_element_by_id(' com.android.bbkcalculator:id/clear')

通過class定位

通過工具獲取到按鈕的class

driver.find_element_by_class_name('class')

實例: driver.find_element_by_class_name(' android.widget.ImageButton ')

通過text定位

appium1.5及之后的版本廢棄了name屬性(如name=百度一下,需要使用uiautomator的定位方式,使用text的內容)

driver.find_element_by_android_uiautomator("text(\中文\)")

實例:driver.find_element_by_android_uiautomator ("text(\"百度一下\")")

備注:需要確認這個中文是當前頁面唯一值,否則還是定位不到,注意寫法,不是直接把中文復制進去

通過xpath定位

driver.find_element_by_xpath("xpath內容 ")

實例:driver.find_element_by_xpath("//android.widget.FrameLayout/android.widget.ImageButton[4]")

以下方式暫時沒有用到,如果有問題以后會更改

通過accessibility_id

在UI Automator Viewer界面上并沒有找到這個字段,這個對應的字段是content-desc

driver.find_element_by_accessibility_id("accessibility_id")

沒有找到實例,要是自己寫自動化的APP碰到了,可以用用

通過css_selector定位(webview)

只適用于webview的html頁面,繼承自webdriver,與pc版本的UI測試一致

driver.find_element_by_css_selector()

通過link_text定位(webview)

只適用于webview容器中的html頁面,繼承自webdriver,與pc版本的UI測試一致

driver.find_element_by_link_text()

通過name定位

只適用于webview容器中的html頁面,繼承自webdriver,與pc版本的UI測試一致

driver.find_element_by_name()

2.定位元素的另一種寫法:find_element(by,value)

find_element_by_方式(value)實際調用的都是find_element(by,value)

需要導入這個包:from selenium.webdriver.common.by import By

例如:定位id為ag2的元素

方式一:driver.find_element_by_id("ag2”)

方式二:driver.find_element(By.ID,"ag2")

這個操作的好處是可以直接把操作的by和value放到一個元組里,然后調用通用方法來傳參獲得元素結果。

cateid=(By.ID,"ag2")

driver.find_element(*cateid).click()

by的操作可以是:

By.ID 相當于by_id

By.CLASS_NAME 相當于by_class_name

By.XPATH 相當于by_xpath

By.NAME 相當于by_name

By.TAG_NAME 相當于by_tag_name

By.CSS_SELECTOR 相當于by_css_selector

By.LINK_TEXT 相當于by_link_text

3.find_elements_by_定位方式(value)返回元素數(shù)組

用法與find_element_by_方式(value)一致,但是返回一個數(shù)組。可以通過數(shù)組的索引來訪問具體的某個結果。

例如:通過class_name定位到多個元素,我想點擊第一個元素

driver.find_elements_by_class_name("android.widget.RelativeLayout”)[0].click()

4.返回元素數(shù)組的另一種寫法:find_elements(by,value)

用法與find_element(by,value)一致,但是返回一個數(shù)組。可以通過數(shù)組的索引來訪問具體的某個結果。

例如:通過class_name定位到多個元素,我想點擊第一個元素

driver.find_elements(By.CLASS_NAME,"android.widget.RelativeLayout”)[0].click()

5.通過元素定位元素

可以先找到某個元素,然后再進一步定位元素

find_element_by_class_xpath(“xxx”).find_element_by_name(“yyy")

四、元素操作

找到元素后可以對元素進行的操作,例如上面講的進一步定位元素

1.click()

//點擊操作

也可以用tab實現(xiàn)點擊操作

driver.find_element_by_id("com.wuba.zhuanzhuan:id/ae8").click()

2.clear()

//清空輸入框內容

driver.find_element_by_id("com.wuba.zhuanzhuan:id/ij").clear()

3.send(xx)

//輸入框內輸入內容

driver.find_element_by_id("com.wuba.zhuanzhuan:id/ij").send_keys("test content")

4.text

//獲得元素的text內容

print(driver.find_element_by_xpath(" //android.widget.LinearLayout[1]//xxx").text)

“appium常用元素定位技巧是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

當前標題:appium常用元素定位技巧是什么-創(chuàng)新互聯(lián)
路徑分享:http://chinadenli.net/article40/hjeho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名營銷型網(wǎng)站建設網(wǎng)站制作動態(tài)網(wǎng)站Google網(wǎng)站設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設