人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

python開發(fā)App基礎(chǔ)操作API使用示例過程

發(fā)布日期:2021-12-17 07:10 | 文章來源:CSDN

手機(jī)控件查看工具uiautomatorviewer

工具簡介

用來掃描和分析Android應(yīng)用程序的UI控件的工具.

如何使用

1.進(jìn)入SDK目錄下的tools目錄,打開uiautomatorviewer
2.電腦連接真機(jī)或打開android模擬器
3.啟動(dòng)待測試app
4.點(diǎn)擊uiautomatorviewer的左上角Device Screenshot,會生成app當(dāng)前頁面的UI控件截圖

5.選擇截圖上需要查看的控件,即可瀏覽該控件的id,class,text,坐標(biāo)等信息

APP元素定位操作

Appium常用元素定位方式

前置代碼

from appium import webdriver
# server 啟動(dòng)參數(shù)
desired_caps = {}
# 設(shè)備信息
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
# app的信息
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
 
# 聲明我們的driver對象
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

通過id定位

方法:find_element_by_id(id_value) # id_value:為元素的id屬性值

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.通過ID定位方式點(diǎn)擊搜索按鈕

通過class定位

 方法:find_element_by_class_name(class_value) # class_value:為元素的class屬性值

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.通過搜索按鈕

3.通過class定位方式點(diǎn)擊輸入框的返回按鈕

通過xpath定位

方法:find_element_by_xpath(xpath_value) # xpath_value:為可以定位到元素的xpath語句
 
*** android端xptah常用屬性定位:
1. id ://*[contains(@resource-id,'com.android.settings:id/search')] 
2. class ://*[contains(@class,'android.widget.ImageButton')]
3. text ://*[contains(@text,'WLAN')]
 
*** 模糊定位 contains(@key,value): value可以是部分值

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.點(diǎn)擊WLAN菜單欄

定位一組元素,注意element -> elements

應(yīng)用場景為元素值重復(fù),無法通過元素屬性直接定位到某個(gè)元素,只能通過elements方式來選擇,返回一個(gè)定位對象的列表.

WebDriverWait 顯示等待操作

在一個(gè)超時(shí)時(shí)間范圍內(nèi),每隔一段時(shí)間去搜索一次元素是否存在,
如果存在返回定位對象,如果不存在直到超時(shí)時(shí)間到達(dá),報(bào)超時(shí)異常錯(cuò)誤。

方法:WebDriverWait(driver, timeout, poll_frequency).until(method)

參數(shù):

driver:手機(jī)驅(qū)動(dòng)對象
timeout:搜索超時(shí)時(shí)間
poll_frequency:每次搜索間隔時(shí)間,默認(rèn)時(shí)間為0.5s
method:定位方法(匿名函數(shù))

使用示例:

WebDriverWait(driver, timeout, poll_frequency).until(lambda x: x.find_elements_by_id(id_value))

解釋:
1.x傳入值為:driver,所以才可以使用定位方法.

函數(shù)運(yùn)行過程:
1.實(shí)例化WebDriverWait類,傳入driver對象,之后driver對象被賦值給WebDriverWait的一個(gè)類變量:self._driver
2.until為WebDriverWait類的方法,until傳入method方法(即匿名函數(shù)),之后method方法會被傳入self._driver
3.搜索到元素后until返回定位對象,沒有搜索到函數(shù)until返回超時(shí)異常錯(cuò)誤.

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.通過ID定位方式點(diǎn)擊搜索按鈕

發(fā)送數(shù)據(jù)到輸入框

方法:send_keys(vaue) # value:需要發(fā)送到輸入框內(nèi)的文本

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.點(diǎn)擊搜索按鈕

3.輸入內(nèi)容abc

解決輸入中文問題:

server 啟動(dòng)參數(shù)增加兩個(gè)參數(shù)配置

desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True

清空輸入框內(nèi)容:

方法:clear()

獲取元素的屬性值

方法: get_attribute(value) # value:元素的屬性

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.獲取搜索按鈕的content-desc屬性值

value='name' 返回content-desc / text屬性值
value='text' 返回text的屬性值
value='className' 返回 class屬性值,只有 API=>18 才能支持
value='resourceId' 返回 resource-id屬性值,只有 API=>18 才能支持

獲取元素在屏幕上的坐標(biāo)

方法:location

獲取app包名和啟動(dòng)名

獲取包名方法:current_package
獲取啟動(dòng)名:current_activity

APP元素事件操作API

swip滑動(dòng)事件

從一個(gè)坐標(biāo)位置滑動(dòng)到另一個(gè)坐標(biāo)位置,只能是兩個(gè)點(diǎn)之間的滑動(dòng)

方法:swipe(start_x, start_y, end_x, end_y, duration=None)

參數(shù):

1.start_x:起點(diǎn)X軸坐標(biāo)
2.start_y:起點(diǎn)Y軸坐標(biāo)
3.end_x: 終點(diǎn)X軸坐標(biāo)
4.end_y: 終點(diǎn)Y軸坐標(biāo)
5.duration: 滑動(dòng)這個(gè)操作一共持續(xù)的時(shí)間長度,單位:ms

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.從坐標(biāo)(148,659)滑動(dòng)到(148,248)

scroll滑動(dòng)事件

從一個(gè)元素滑動(dòng)到另一個(gè)元素,直到頁面自動(dòng)停止

方法:scroll(origin_el, destination_el)

參數(shù):
1.origin_el:滑動(dòng)開始的元素
2.destination_el:滑動(dòng)結(jié)束的元素

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.從存儲菜單位置滑動(dòng)到WLAN菜單位置

drag拖拽事件

從一個(gè)元素滑動(dòng)到另一個(gè)元素,第二個(gè)元素替代第一個(gè)元素原本屏幕上的位置

方法:drag_and_drop(origin_el, destination_el)

參數(shù):

1.origin_el:滑動(dòng)開始的元素
2.destination_el:滑動(dòng)結(jié)束的元素

應(yīng)用置于后臺事件

APP放置后臺,模擬熱啟動(dòng)

方法:background_app(seconds)

參數(shù):

1.seconds:停留在后臺的時(shí)間,單位:秒

APP模擬手勢高級操作

TouchAction是AppiumDriver的輔助類,主要針對手勢操作,比如滑動(dòng)、長按、拖動(dòng)等,
原理是將一系列的動(dòng)作放在一個(gè)鏈條中發(fā)送到服務(wù)器,服務(wù)器接受到該鏈條后,解析各個(gè)動(dòng)作,逐個(gè)執(zhí)行

所有手勢都要通過執(zhí)行函數(shù)才會運(yùn)行

手指輕敲操作

模擬手指輕敲一下屏幕操作

方法:tap(element=None, x=None, y=None)
方法:perform() # 發(fā)送命令到服務(wù)器執(zhí)行操作

參數(shù):

1.element:被定位到的元素
2.x:相對于元素左上角的坐標(biāo),通常會使用元素的X軸坐標(biāo)
3.y:通常會使用元素的Y軸坐標(biāo)

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.點(diǎn)擊WLAN選項(xiàng)

手指按操作

模擬手指按下屏幕,按就要對應(yīng)著離開.

方法:press(el=None, x=None, y=None)
方法:release() # 結(jié)束動(dòng)作,手指離開屏幕

參數(shù):
1.element:被定位到的元素
2.x:通常會使用元素的X軸坐標(biāo)
3.y:通常會使用元素的Y軸坐標(biāo)

等待操作

方法:wait(ms=0)

參數(shù):

ms:暫停的毫秒數(shù)

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.點(diǎn)擊WLAN選項(xiàng)

3.長按選項(xiàng)5秒

手指長按操作

模擬手機(jī)按下屏幕一段時(shí)間,按就要對應(yīng)著離開.

方法:long_press(el=None, x=None, y=None, duration=1000)

參數(shù):

1.element:被定位到的元素
2.x:通常會使用元素的X軸坐標(biāo)
3.y:通常會使用元素的Y軸坐標(biāo)
4.duration:持續(xù)時(shí)間,默認(rèn)為1000ms

手指移動(dòng)操作

模擬手機(jī)的滑動(dòng)操作

方法:move_to(el=None, x=None, y=None)

參數(shù):

1.el:定位的元素
2.x:相對于前一個(gè)元素的X軸偏移量
3.y:相對于前一個(gè)元素的Y軸偏移量

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.向上滑動(dòng)屏幕

練習(xí):

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.向上滑動(dòng)屏幕到可見“安全”選項(xiàng)

3.進(jìn)入到安全

4.點(diǎn)擊屏幕鎖定方式

5.點(diǎn)擊圖案

6.繪制圖案

以上就是python開發(fā)App基礎(chǔ)操作API使用示例過程的詳細(xì)內(nèi)容,更多關(guān)于python開發(fā)App基礎(chǔ)操作API的資料請關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部