Airtest 指定點選頁面中相同的按鍵

2022-09-22 03:00:16 字數 2404 閱讀 8884

需求:當乙個頁面存在多個相同的按鍵,通過影象識別的方式點選指定的按鍵

思路:1.每次匹配到按鍵的區域後將區域從源影象中去掉

2.根據按鍵與左上角 (0,0) 的長度對按鍵進行排序

(忽略長度相同的情況,可換其他角的座標計算解決)

#重寫match_in,return加上識別到的區域(match_result)

defmatch_in(self, screen):

match_result =self._cv_match(screen)

g.logging.debug(

"match result: %s

", match_result)

ifnot

match_result:

return

none

focus_pos =targetpos().getxy(match_result, self.target_pos)

return

focus_pos,match_result

defp(search,source,total,index):

""":param search: 匹配影象

:param source: 源影象

:param total: 相同影象總數

:param index: 匹配索引

:return: 匹配座標

"""result =

source_array=numpy.array(image.open(source))

t =time.time()

for i in

range(total):

im_search =template2(search)

im_source =aircv.imread(source)

pos,match = im_search.match_in(im_source) #

匹配座標和匹配區域

array = numpy.array(image.open(source))#

建立矩陣

#將區域填充為白色

for col in range(match['

rectangle

'][0][0],match['

rectangle

'][-1][0]):

for row in range(match['

rectangle

'][0][1],match['

rectangle

'][1][1]):

array[row,col] = [255,255,255]

image.fromarray(array).s**e(source)

#更新源影象

result.sort(key= lambda x: sqrt(x[0]*x[0]+x[1]*x[1]))#

根據距離(0,0)排序

輸出0.0870201587677002[(112, 63), (112, 119), (160, 63), (160, 119), (208, 63), (208, 119), (256, 63), (256, 119), (304, 63), (304, 119)]

(112, 63)

iOS點選推送訊息跳到應用指定頁面

現在的推送用的越來越頻繁,幾乎每個應用都開始用到了。其實又有幾個使用者會去看推送訊息呢?沒辦法,產品經理最大啊,只是苦了我們這一幫程式設計師啊!閒話少說,進入正題。兄弟我用的是極光推送,自然是以極光推送為例了。現在點選推送訊息,有兩種跳轉方式 1.開啟應用,跳轉到應用首頁 2.開啟應用,跳轉到指定頁...

iOS點選推送訊息跳到應用指定頁面方法

現在的推送用的越來越頻繁,幾乎每程式設計客棧個應用都開始用到了。其實又有幾個使用者會去看推送訊息呢?沒辦法,產品經理最大啊,只是苦了我們這一幫程式設計師啊!閒話少說,進入正題。兄弟我用的是極光推送,自然是以極光推送為例了。現在點選推送訊息,有兩種跳轉方式 1.開啟應用,跳轉到應用首頁 2.開啟應用,...

VUE中實現點選按鈕重新整理頁面的方法

這裡先介紹兩種簡單粗暴的重新整理頁面方法,但會有較長的白屏時間,比較影響使用者體驗,並不推薦 第一種 window.location.reload 第二種 this router.go 0 下面進入正題,也是我們重新整理頁面比較推薦的方式 首先我們需要先了解一下vue中的依賴注入provide 和 ...