二: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字典键值错误

原文地址:https://www.cnblogs.com/zhenyu1/p/11942522.html