appium中彈窗的處理
阿新 • • 發佈:2021-02-15
技術標籤:app自動化
一、appium中彈窗的處理
from appium.webdriver.webdriver import WebDriver
class base:
black_list=[()]
error_cont=0
error_max=10
def __init__(self,driver:WebDriver):
self.driver=driver
def find(self,by,locator=None):
try:
#承接元組,或者非元組
ele=self. driver.find_element(*by) if isinstance(by,tuple) else self.driver.find_element(by,locator)
self.error_cont=0
return ele
except Exception as e:
#如果沒找到會陷入死迴圈,這裡判斷10次
self.error_cont+=1
if self.error_cont>self.error_max:
raise e
#取出彈窗的元素,進行點選
for black in self.black_list:
elements=self.driver.find_elements(*black)
if len(elements)>0:
elements[0].click()
return self.find(by,locator)
raise e
二、這裡要注意desired capablities中有一個設定引數,也是可以處理彈框的,但是要注意,它只能處理安裝軟體後的授權彈窗
讓Appium自動確定您的應用所需的許可權,並在安裝時將其授予應用,如果noReset為true,則此功能不起作用。