zoukankan      html  css  js  c++  java
  • python+Appium自动化:Appium元素检测

    appium模拟用户的真实操作,如果用户第一次进入app或许会弹出一些更新提示,或者是引导页面,但是下一次开启app时则没有引导页这些界面,这时,脚本中又肯定不考虑用两套代码来进行维护,此时如何应对这种场景进行处理呢?

    比如启动淘宝应用,之前使用这个noReset配置,当默认设置为False,即每次进入都会清除掉session,即有温馨提示弹窗出现,那当设置为True时,第二次进入时,不会有弹窗,那此时再执行原有的脚本就会报错,有人会说用if语句来进行判断,亲测也会出现问题,所以最后还是推荐用try...except来进行检测比较好。

    代码如下:

    # -*- coding: utf-8 -*-#

    from appium import webdriver
    from selenium.common.exceptions import NoSuchElementException

    desired_caps = {
    "platformName": "Android",
    "platformVersion": "5.1",
    "deviceName": "U4KF9HSK99999999",
    "appPackage": "com.taobao.taobao",
    "appActivity": "com.taobao.tao.welcome.Welcome",
    "noReset": True


    }
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    driver.implicitly_wait(10)

    def check_agreebtn():
    print("check_agreebtn")
    try:
    agreebtn=driver.find_element_by_id('com.taobao.taobao:id/provision_positive_button')
    except NoSuchElementException:
    print("no agreebtn")
    else:
    agreebtn.click()
    def check_localtionbtn():
    print("check_localtionbtn")
    try:
    localtionbtn=driver.find_element_by_id('com.taobao.taobao:id/uik_mdButtonDefaultPositive')
    except NoSuchElementException:
    print("no localtionbtn")
    else:
    localtionbtn.click()

    check_agreebtn()
    check_localtionbtn()

    导入NoSuchElementException模块,启动app后,先判断是否有“同意”按钮,如有的话进行点击,无则输出no agreebtn,同理,位置信息也是一样~

    此方法,后续用的比较多~

    转载请附上原文链接。
  • 相关阅读:
    libevent源码学习之event
    游戏寻路A*算法
    游戏地图动态生成
    一个基于protocol buffer的RPC实现
    TCMalloc源码学习(四)(小内存块释放)
    TCMalloc源码学习(三)(小块内存分配)
    TCMalloc源码学习(二)
    第五十四篇 Linux相关——远程连接SSH
    第五十三篇 Linux相关——Web服务器
    第五十二篇 Linux相关——数据库服务MySQL
  • 原文地址:https://www.cnblogs.com/bugbreak/p/11995399.html
Copyright © 2011-2022 走看看