zoukankan      html  css  js  c++  java
  • 二:Appium元素id定位方式

    测试场景1
    1. 安装考研帮kaoyan3.1.0.apk
    2. 点击升级页面取消按钮
    3. 点击引导页面的跳过按钮
    4.  try:执行可能会出错的试探性语句,即这里面的语句是可以导致致命性错误使得程序无法继续执行下去
      except:如果try里面的语句无法正确执行,那么就执行except里面的语句,这里面可以是错误信息或者其他的可执行语句
      else:如果try里面的语句可以正常执行,那么就执行else里面的语句(相当于程序没有碰到致命性错误)

    kyb_cancel_skip.py

    from  appium import webdriver
    
    desired_caps={}
    desired_caps['platformName']='Android'
    desired_caps['deviceName']='127.0.0.1:62025'
    desired_caps['platforVersion']='5.1.1'
    
    desired_caps['app']=r'C:UsersShuqingDesktopkaoyan3.1.0.apk'
    desired_caps['appPackage']='com.tal.kaoyan'
    desired_caps['appActivity']='com.tal.kaoyan.ui.activity.SplashActivity'
    
    driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
    driver.implicitly_wait(5)
    
    driver.find_element_by_id('android:id/button2').click()
    driver.find_element_by_id('com.tal.kaoyan:id/tv_skip').click()

    相关阅读:selenium元素定位 还记得那年的selenium元素定位吗?? http://www.51zxw.net/list.aspx?page=3&cid=615

    kyb_cancel_skip_try.py

    from  appium import webdriver
    from selenium.common.exceptions import NoSuchElementException
    
    desired_caps={}
    desired_caps['platformName']='Android'
    desired_caps['deviceName']='127.0.0.1:62025'
    desired_caps['platforVersion']='5.1.1'
    
    desired_caps['app']=r'C:UsersShuqingDesktopkaoyan3.1.0.apk'
    desired_caps['appPackage']='com.tal.kaoyan'
    desired_caps['appActivity']='com.tal.kaoyan.ui.activity.SplashActivity'
    
    desired_caps['noReset']='True'
    
    driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
    driver.implicitly_wait(5)
    
    def check_cancelBtn():
        print("check_cancelBtn")
    
        try:
            cancelBtn = driver.find_element_by_id('android:id/button2')
        except NoSuchElementException:
            print('no CancelBtn')
        else:
            cancelBtn.click()
    
    def check_skipBtn():
        print("check_skipBtn")
        try:
            skipBtn = driver.find_element_by_id('com.tal.kaoyan:id/tv_skip')
        except NoSuchElementException:
            print('no skipBtn')
        else:
            skipBtn.click()
    
    check_updateBtn()
    check_skipBtn()

    id定位综合实践——自动登录

    测试场景
    1. 启动App,进入到登录界面
    2. 在登录页面输入用户名“自学网2018”,密码‘zxw2018’ 然后点击登录。

    需求分析
    1. 可以把启动后检测升级弹窗和引导页面的模块抽离作为独立的模块被其他模块调用,提高代码复用率。
    2. 获取用户名密码输入框和登录按钮的元素id属性,另外要考虑启动时App之前是否登录过账号,已经登录过和未登录场景流程不一样。
    3. 注意:send_keys()传入中文时需要在capability中配置如下内容:

    desired_caps['unicodeKeyboard']="True"
    desired_caps['resetKeyboard']="True"

    设置之后会有Appium的输入法守护来执行输入操作

    代码实现
    kby_login.py

    from  find_element.capability import driver,NoSuchElementException
    
    
    
    def login():
            driver.find_element_by_id('com.tal.kaoyan:id/login_email_edittext').clear()
        driver.find_element_by_id('com.tal.kaoyan:id/login_email_edittext').send_keys('自学网2018')
    
        driver.find_element_by_id('com.tal.kaoyan:id/login_password_edittext').send_keys('zxw2018')
        driver.find_element_by_id('com.tal.kaoyan:id/login_login_btn').click()
    
    try:
        driver.find_element_by_id('com.tal.kaoyan:id/mainactivity_button_mysefl')
    
    except NoSuchElementException:
        login()
    
    else:
        driver.find_element_by_id('com.tal.kaoyan:id/mainactivity_button_mysefl').click()
        driver.find_element_by_id('com.tal.kaoyan:id/activity_usercenter_username').click()
        login()

    注意:
    使用Appium做了输入操作之后,如果出现输入法无法唤起,可以在系统设置——语言和输入法——将当前输入法替换为系统输入法或者其他输入法。

    博客地址 https://www.cnblogs.com/yufeihlf/p/6068589.html#test0
    常见的python报错及解决方案
    1.NameError变量名错误
    2.IndentationError代码缩进错误
    3.AttributeError对象属性错误
    4.TypeError类型错误
    5.IOError输入输出错误
    6.KeyError字典键值错误

  • 相关阅读:
    编程语言的发展趋势及未来方向 目录 编程语言的发展趋势及未来方向 1 第一章 一、历史回顾及趋势概述 2 第一节 首先,编程语言的发展非常缓慢。oo等等,但是远没有好上1000倍。 3 第二节 出现
    Atitit datatype 数据类型 目录 第一章 三大基本类型 数字 字符串 bool 1 第二章 基本类型vs引用类型 1 字符串类型 2 第三章 符合类型vs 简单类型 2 特殊类型
    Atitit 乔姆斯基分类 语言的分类 目录 1.1. 0 –递归可枚举语法 1 1.2. 1 –上下文相关的语法 自然语言 1 1.3. 2 –上下文无关的语法 gpl编程语言 1 1.4. 3
    桁架系统控制
    Pset_RoofCommon
    Pset_ShadingDeviceCommon
    Pset_SlabCommon
    gis数据下载地址
    Pset_StairCommon
    Pset_StairFlightCommon
  • 原文地址:https://www.cnblogs.com/zhenyu1/p/11942522.html
Copyright © 2011-2022 走看看