• 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循环。

  • 相关阅读:
    关于form表单的相同name问题
    MySQL数据库视图
    Blazor
    查看Oracle正在执行的任务
    比较不错的几款开源的WPF Charts报表控件
    Raft算法
    EntityFramework 使用Linq处理内连接(inner join)、外链接(left/right outer join)、多表查询
    systemd、upstart和system V 枯木
    MRTG生成首页报错解决方法 枯木
    dd备份和恢复 枯木
  • 原文地址:https://www.cnblogs.com/Maruying/p/13630835.html
Copyright © 2020-2023  润新知