7.0 啟動app許可權彈窗問題

來源:互聯網
上載者:User

標籤:bubuko   range   取值   image   建議   準備   否支援   for   str   

這裡提供兩種解決方案!

  1.安卓6.0+是可以直接利用uiautomator定位元素點擊!這個不細說,定位方式很多種...這個等待時間大家自己定大概兩到三秒即可!

    

#安卓6.0+點擊方式
driver.find_element_by_android_uiautomator(‘new UiSelector().textContains("允許")‘)

  但是一般來說彈窗大多數都是好多個---利用顯示等待:啟動app之後,在三秒內  沒0.5秒尋找一次元素,如果存在則點擊,不存在則報錯直接pass

  

try:    while True:        Element = ("xpath", "//*[contains(@text,‘允許‘)]")        ac = WebDriverWait(driver, 3, 0.5).until(lambda driver:driver.find_element_by_xpath(‘//*[contains(@text,"允許")]‘))        ac.click()except:    pass

     2.還有一種定位方式如下,親測支援高版本,但是我沒有親自試過是否支援低版本手機的許可權彈窗-----因為我不是用的這兩種---個人用的方法比較簡單粗暴+直接

但是呢,這裡建議大家搞個低版本的手機試下,我沒測是因為條件不允許,找不到低版本的手機.......希望有朋友測了之後留言一波,讓我有個底....

  

try:    while True:        Element = ("xpath", "//*[contains(@text,‘允許‘)]")        ac = WebDriverWait(driver, 1, 0.5).until(EC.presence_of_element_located(Element))        ac.click()except:    pass

 

 

    • 然後手動給每台手機安裝一遍app,並用記事本獲其他玩意記下裝置名稱

 

 

    • 開啟app,準備好uiautomatorview(sdk目錄下那個定位元素的玩意..),如所示記住這個座標,如:

      admin_lists={‘2905bdb6‘:[360,1149],‘xxxx‘:[1,1]},如果定位不到【允許】這個座標,就手動點一下允許,按照不動,你會發現在螢幕最上面有一個座標DX:--/DY:--,記下這個座標也是一樣的!

        

 

 

admin_list={‘2905bdb6‘:[(360,1149)],‘xxxx‘:[(1,1)]}for a in admin_list:    deviceList=‘‘.join(os.popen(‘adb devices‘).readlines())    Device=re.findall(r"(.+?)\t",deviceList)[0]    print(Device)    if a==Device:        driver.tap(admin_list[a])

 

 

      

      原理就是先把我們測試機彈出許可權允許的那個座標給記錄下來,第一次安裝啟動的時候查詢一下裝置名稱然後取到座標,然後點擊---這個方法也是適合多裝置

方法有點撈,但是實用靠譜---另外這裡不要想著去適配螢幕,這個不存在的,據我瞭解不同手機的彈窗樣式可能是不一樣的..

如果只彈出一個-直接用上面的方法就可以了,但是如果許可權彈窗有多個呢:

  加個方法就可以了---有多個的話,這個就得根據自己的app調試了...但是大同小異

如下所示:

 

admin_list={‘2905bdb6‘:[(360,1149)],‘xxxx‘:[(1,1)]}for a in admin_list:    deviceList=‘‘.join(os.popen(‘adb devices‘).readlines())    Device=re.findall(r"(.+?)\t",deviceList)[0]    print(Device)    if a==Device:        for i  in range(5):            driver.tap(admin_list[a])            time.sleep(3)

 

 

 

 

    

具體應該還有很多騷方法--大家可以自己研究一下,只要能實現就可以,我個人方面對於執行效率並沒有太過--(想不到詞了)

 

這章有一定的python文法:

   迴圈、正則、os、range、readlines、dict取值----如果這個不太懂得-建議看下 廖雪峰的python3教程---直接百度廖雪峰就可以了

 

7.0 啟動app許可權彈窗問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.