說(shuō)明:Tensorflow平臺(tái)有太多的函數(shù),需要及時(shí)查看每個(gè)函數(shù)里的有哪些參數(shù)、各種參數(shù)的使用說(shuō)明。在jupyter notebook中有最常用的快捷鍵可以打開提示:

10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有平陰免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
快捷鍵:在函數(shù)括號(hào)內(nèi), 按著shift , 雙擊tap !
先看看tap是什么,定義在了TouchAction中,代碼如下
def tap(self, element=None, x=None, y=None, count=1):
"""Perform a tap action on the element
:Args:
- element - the element to tap
- x - (optional) x coordinate to tap, relative to the top left corner of the element.
- y - (optional) y coordinate. If y is used, x must also be set, and vice versa
:Usage:
"""
opts = self._get_opts(element, x, y)
opts['count'] = count
self._add_action('tap', opts)
return self
實(shí)際的使用中根據(jù)這個(gè)來(lái)自定義一些方法來(lái)用,比如你這個(gè)點(diǎn)擊屏幕,可以定義如下,后面?zhèn)鬟f參數(shù)即可
def tap_screen(self, x, y):
self.action.tap(None, x, y).perform()
另外我這邊是計(jì)算中心坐標(biāo)是除以2,是沒(méi)問(wèn)題的。比如你這個(gè)就是center_x = w / 2,center_y = y / 2,后面直接調(diào)用tap_screen(center_x,center_y)就行了
實(shí)現(xiàn)了一個(gè)最簡(jiǎn)單的輸入密碼,enter進(jìn)入的簡(jiǎn)單鍵盤操作登錄過(guò)程,具體代碼如下:
· 鼠標(biāo)點(diǎn)擊
有m.click(x, y, button, n)? -- 點(diǎn)擊,想x,y坐標(biāo),button:-1表示左鍵,-2表示右鍵,n:默認(rèn)1次,2雙擊
m.move(x, y) -- 鼠標(biāo)移動(dòng)
m.screen_size() -- 獲取屏幕尺寸
· 鍵盤操作
k.type_string('abcdefg') --輸入內(nèi)容
k.press_key('a') --按a鍵
k.release_key('a') --松開a鍵
k.tap_key('a') --點(diǎn)擊a鍵
k.tap_key('a', n=2, interval=5) --點(diǎn)擊a鍵2次,每次間隔5秒
k.tap_key(k.function_keys[5]) --功能鍵F5
k.press_keys([k.alt_key, 'a']) --組合按鍵
你可以在開發(fā)者選項(xiàng)中打開指針位置,這樣就很容易去獲取界面上各個(gè)圖標(biāo)的具體位置了。建議是先獲取手機(jī)分辨率,然后根據(jù)分辨率去計(jì)算要點(diǎn)擊的位置。
點(diǎn)擊操作driver有click()方法,如果沒(méi)有className或者resource-id,使用swipe方法,參考如下:
##獲取手機(jī)屏幕分辨率
x = self.driver.get_window_size()['width']
y = self.driver.get_window_size()['height']
x = int(x*0.1)
y = int(y*0.1)
self.driver.swipe(x, y, x, y,1)
#這里的xy就是你UI界面上圖標(biāo)對(duì)應(yīng)的坐標(biāo),時(shí)間非常短,1毫秒,模擬點(diǎn)擊了。
如果別人有更好的方法,你就用別人的,僅供參考。
當(dāng)然tap也可以,doc如下:
"""Taps on an particular place with up to five fingers, holding
for a
certain time
:Args:
- positions - an array of tuples representing the x/y
coordinates of
the fingers to tap. Length can be up to five.
- duration - (optional) length of time to tap, in ms
:Usage:
driver.tap([(100, 20), (100, 60), (100, 100)], 500)
"""
在使用Python3做自動(dòng)化測(cè)試的過(guò)程中可能會(huì)遇到這種情況:assert函數(shù)不加try except 就可以正常在報(bào)告里體現(xiàn)用例不通過(guò),加上了try except 反而變成了通過(guò)。
這是因?yàn)樵谑褂胻ry except 時(shí),捕獲了assert函數(shù)產(chǎn)生的AssertionError異常,導(dǎo)致異常沒(méi)有上拋,這時(shí)只需要在后面加上raise就可以再次把它拋出。
所以如果需要上報(bào)錯(cuò)誤,就需要在try except語(yǔ)句后添加raise來(lái)上報(bào)錯(cuò)誤,否則即使有錯(cuò)誤用例也會(huì)直接通過(guò)
點(diǎn)擊某個(gè)元素時(shí)通常用click方法,但是當(dāng)所點(diǎn)擊的元素UI區(qū)域太小時(shí),會(huì)點(diǎn)擊無(wú)效,造成以為視圖中沒(méi)有當(dāng)前元素的錯(cuò)覺(jué)。
所以當(dāng)前所點(diǎn)擊的元素UI區(qū)域較小時(shí),可以選擇采用 tap 點(diǎn)擊即輕觸操作
當(dāng)前所點(diǎn)擊的元素UI區(qū)域較大時(shí),可以選擇采用click 點(diǎn)擊或者 tap輕觸操作
找對(duì)應(yīng)的元素最好按照上圖中參數(shù)的順序嘗試,優(yōu)先選擇通過(guò)accessibility id尋找元素,
如果元素沒(méi)有“accessibility id”, 在通過(guò)“-ios class chain” 尋找元素
如果“ios class chain” 不容易找到元素,可嘗試通過(guò)“-ios predicate string” 尋找元素
親測(cè)"xpath"不是特別好用
正常情況下,通過(guò)“accessibility id” 或者“-ios class chain” 就能找到對(duì)應(yīng)的元素
想要獲取元素屬性值,可通過(guò)get_attribute方法獲取,其中的參數(shù)需要參考當(dāng)前Inspector顯示出的attribute,沒(méi)有顯示的則無(wú)法獲取其屬性值
例如:通過(guò)當(dāng)前Inspector顯示出的attribute,可以獲取value屬性值、type屬性值、width屬性值等等
有些頁(yè)面數(shù)據(jù)復(fù)雜,點(diǎn)擊某個(gè)元素后,接口請(qǐng)求較慢,此時(shí)延遲參數(shù)應(yīng)設(shè)置大一點(diǎn),防止頁(yè)面未完全展示,導(dǎo)致后續(xù)點(diǎn)擊操作報(bào)錯(cuò)
如:
有時(shí)點(diǎn)擊某個(gè)元素后,不涉及到請(qǐng)求接口或者頁(yè)面非常簡(jiǎn)單,此時(shí)延遲參數(shù)可設(shè)置小一點(diǎn),避免較長(zhǎng)等待
參考pep8規(guī)范:
一 代碼編排
1 縮進(jìn)。4個(gè)空格的縮進(jìn)(編輯器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
2 每行最大長(zhǎng)度79,換行可以使用反斜杠,最好使用圓括號(hào)。換行點(diǎn)要在操作符的后邊敲回車。
3 類和top-level函數(shù)定義之間空兩行;類中的方法定義之間空一行;函數(shù)內(nèi)邏輯無(wú)關(guān)段落之間空一行;其他地方盡量不要再空行。
網(wǎng)頁(yè)名稱:python的tap函數(shù),TAPYTAP
本文來(lái)源:http://chinadenli.net/article5/dsijeii.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、用戶體驗(yàn)、網(wǎng)站營(yíng)銷、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)