id 元素定位练习(考研帮)

测试场景1
1.安装考研帮kaoyan3.1.0.apk
2.点击升级页面取消按钮
3.点击引导页面的跳过按钮

获取id
在这里插入图片描述
在这里插入图片描述

python代码如下
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['deviceName']='JDN-W09'
desired_caps['platforVersion']='6.0.1'
desired_caps['udid']='7YRBBDB7B0702188'

desired_caps['app']=r'C:\Users\bella\Desktop\20180922\kaoyan3.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()  #再点击跳过按钮

方案探索1——if条件判断
有同学可能想到用if来做条件判断,判断元素是否存在,存在则点击,不存在则跳过。
kyb_cancel_skip_if.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['deviceName']='JDN-W09'
desired_caps['platforVersion']='6.0.1'
desired_caps['udid']='7YRBBDB7B0702188'

desired_caps['app']=r'C:\Users\bella\Desktop\20180922\kaoyan3.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)

cancelBtn=driver.find_element_by_id('android:id/button2').click() #先点击取消按钮
skipBtn=driver.find_element_by_id('com.tal.kaoyan:id/tv_skip').click()  #再点击跳过按钮

if cancelBtn:
    cancelBtn.click()
else:
    print('no cancelBtn')

if skipBtn:
    skipBtn.click()
else:
    print('no skipBtn')

方案探索2——异常捕捉
既然上面的if语句判断无法生效,但是我们发现一个突破口,那就是捕捉NoSuchElementException异常。
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['deviceName']='JDN-W09'
desired_caps['platforVersion']='6.0.1'
desired_caps['udid']='7YRBBDB7B0702188'

desired_caps['app']=r'C:\Users\bella\Desktop\20180922\kaoyan3.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').click()   #查找这个元素
    except NoSuchElementException:
        print('no cancelBtn')   #当没有这个元素就打印出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_cancelBtn()
check_skipBtn()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43264177/article/details/82927179
id
今日推荐