新安装的app应用,首次打开时会出现权限弹框(确定/取消权限),如下:
对于这些权限弹框,我们也是可以定位到得:
from appium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC desired_caps = { 'autoLaunch': 'True', 'deviceName': 'Honor10.0', 'platformVersion': '10.0', 'platformName': 'Android', 'noReset': 'True', 'appPackage': 'com.fenbi.android.solar', 'appActivity': 'com.fenbi.android.solar.activity.RouterActivity', } driver = webdriver.Remote('127.0.0.1:4723/wd/hub', desired_caps) # 不同意授权,则退出App # loc_disagree = ("id", "com.fenbi.android.solar:id/tv_disagree") # try: # ele = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located(loc_disagree)) # ele.click() # except Exception as e: # raise e # 同意授权,则可一步步进入App loc_agree = ("id", "com.fenbi.android.solar:id/tv_agree") try: ele = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located(loc_agree)) ele.click() except Exception as e: raise e else: loc_permission = ("xpath", "//*[@text='确定']") ele2 = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located(loc_permission)) ele2.click() loc_skip = ("xpath", "//*[@text='跳过']") ele3 = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located(loc_skip)) ele3.click() print("已成功打开小猿搜题App.")
PS:若存在多个text文本相同的权限弹框时,则可以for循环。