Appium之首次打开app时权限弹框问题

 

新安装的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循环。

 

posted @ 2020-09-14 16:26  Maruying  阅读(890)  评论(0编辑  收藏  举报