Appium id定位综合实践——自动登录(交易宝)

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

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

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

代码实现:
jiaoyibao_capability_zhenji.py

from appium import webdriver    #导入appium包
from selenium.common.exceptions import NoSuchElementException

desired_caps={}     #定义一个字典,用来存储capablity的相关信息
desired_caps['platformName']='Android'      #设备平台的名称
desired_caps['deviceName']='JDN-W09'        #设备名称
desired_caps['platforVersion']='6.0.1'      #设备的版本号
desired_caps['udid']='7YRBBDB7B0702188'     #真机串号


desired_caps['app']=r'C:\Users\bella\Desktop\20180922\jiaoyibao.apk'        #获取包路径
desired_caps['appPackage']='com.konsonsmx.iqdii'        #获取包名
desired_caps['appActivity']='com.konsonsmx.market.module.base.ui.FlashADActivity'   #获取activity启动

desired_caps['noReset']='true'  #模拟用户非首次启动
desired_caps['unicodeKeyboard']="true"  #登录用了中文,代码要做配置
desired_caps['resetKeyboard']="true"    #重置键盘也要设置为true

driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)    #启动服务
driver.implicitly_wait(2)   #启动后等待2秒

def check_skipBtn():
    print("check_skipBtn")
    try:
        skipBtn = driver.find_element_by_id('com.konsonsmx.iqdii:id/tvCountDown')
    except NoSuchElementException:
        print('no skipBtn')  #当没有这个元素就打印出no cancelBtn
    else:
        skipBtn.click()  #存在这个元素就去点击

def check_loginBtn():
    print("check_loginBtn")
    try:
        loginBtn = driver.find_element_by_id('com.konsonsmx.iqdii:id/ib_title_left')
    except NoSuchElementException:
        print('no loginBtn')  #当没有这个元素就打印出no cancelBtn
    else:
        loginBtn.click()  #存在这个元素就去点击
check_skipBtn()
check_loginBtn()

jiaoyibao_login_zhenji.py

from jiaoyibao.jiaoyibao_capability_zhenji import driver,NoSuchElementException

def login():
    driver.find_element_by_id('com.konsonsmx.iqdii:id/tvMMDL').click()    #切换密码登录按钮,用密码登录的方式登录交易宝
    driver.find_element_by_id('com.konsonsmx.iqdii:id/et_account').clear()    #清空输入框的用户名

    driver.find_element_by_id('com.konsonsmx.iqdii:id/et_account').send_keys('suwen20')    #得到用户名
    driver.find_element_by_id('com.konsonsmx.iqdii:id/et_password').send_keys('123456')   #得到密码
    driver.find_element_by_id('com.konsonsmx.iqdii:id/bt_login').click()  #点击登录按钮

try:
    driver.find_element_by_id('com.konsonsmx.iqdii:id/ib_title_left').click() #点击个人头像
except NoSuchElementException:
    login() #如果没有个人头像这个元素,直接进入到登录界面,调用login()
else:
    driver.find_element_by_id('com.konsonsmx.iqdii:id/ib_title_left').click()#如果有这个元素,就要点击个人头像
    login()

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

猜你喜欢

转载自blog.csdn.net/weixin_43264177/article/details/82942122