Appium元素定位—id定位(交易宝)

id定位
日常生活中身边可能存在相同名字的人,但是每个人的身份证号码是唯一的,在app界面元素中也可以使用id值来区分不同的元素,然后进行定位操作。Appium中可以使用 find_element_by_id() 方法来进行id定位。

1.打开appium,找到jiaoyibao_Android_5.1.1,点击Start Session
在这里插入图片描述
2.获取跳过的id
在这里插入图片描述
3.获取个人头像的id
![在这里插入图片描述](https://img-blog.csdn.net/20181002155046936?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI2NDE3Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/7
3.ptyhon代码如下
jiaoyibao_cancel_skip.py

from appium import webdriver    #导入appium包

desired_caps={}     #定义一个字典,用来存储capablity的相关信息
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\jiaoyibao.apk'        #获取包路径
desired_caps['appPackage']='com.konsonsmx.iqdii'        #获取包名
desired_caps['appActivity']='com.konsonsmx.market.module.base.ui.FlashADActivity'   #获取activity启动

desired_caps['noReset']='true'  #模拟用户非首次启动

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

driver.find_element_by_id('com.konsonsmx.iqdii:id/tvCountDown').click()  #先点击跳过
driver.find_element_by_id('com.konsonsmx.iqdii:id/ib_title_left').click()  #点击个人头像

方案探索2——异常捕捉
既然上面的if语句判断无法生效,但是我们发现一个突破口,那就是捕捉NoSuchElementException异常。
jiaoyibao_cancel_skip_try.py

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

desired_caps={}     #定义一个字典,用来存储capablity的相关信息
desired_caps['platformName']='Android'      #设备平台的名称
desired_caps['deviceName']='127.0.0.1:62025'        #设备名称
desired_caps['platforVersion']='5.1.1'      #设备的版本号


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'  #模拟用户非首次启动

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()

在这里插入图片描述

猜你喜欢

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