本文以 MSN news 为例,实现启动app 后跳转到首页的功能,包含使用list进行元素定位、try except else 进行是否首次启动app判断,logging 进行日志记录等功能
一 场景:
1.启动app后连续跳过welcom、interest 、what‘s new 页面到首页
2.判断是否是首次启动,如果首次启动通过出现welcom页面,如果不是首次启动则直接进入interest页面
3.使用logging 模块记录日志
4.Logging模块配置

二 实践
2.1 启动app后连续跳过welcom、interest 、what‘s new 页面到首页
welcom页面

1. 首先启动appium 进行session 回话
2.app 启动到welcom页面,点击not now按钮,跳转到下一个页面
分析:这里我使用list元素进行定位,为什么选择它呢,通过观察可以知道class name 和sign in name名称相同,如果直接使用classname那么就会定会到当前页面首个class name元素。
list定位获取一组class名称,通过数组下标进行区分
a=driver.find_element_by_id()
a[1].click()
3. 代码:
skipwel=driver.find_elements_by_class_name('android.widget.Button')
skipwel[1].click()
2.2判断是否是首次启动,如果首次启动通过出现welcom页面,如果不是首次启动则直接进入interest页面
首次启动app时,会弹出welcome页面,但是第二次启动时该页面就会消失,出现interest页面那么对于这种判断我们该如何处理呢
这里我们使用try except 语句进行判断
try except 语法:

工作原理:如果try语句发生异常,则执行except 匹配名称后语句
如果try语句未发生异常,执行else后面语句
如果try语句发生异常, except语句后内容没有匹配成功,异常将被递交到上层的try。
处理思路:
定位interest页面,如果定位失败,证明出现的是welcome,执行welcome语句;否则执行interest页面语句
代码:
def welcome():
logging.info('skip welcome')
skipwel=driver.find_elements_by_class_name('android.widget.Button')
skipwel[1].click()
try:
driver.find_elements_by_class_name('android.widget.Button')
except NoSuchElementException:
welcome()
else:
skipinterest=driver.find_elements_by_class_name('android.widget.Button')
skipinterest[0].click()
interets 页面
原理同welcom 页面
skipinterest=driver.find_elements_by_class_name('android.widget.Button')
skipinterest[0].click()
what‘s new page
原理同welcom 页面
skipwhatnew=driver.find_elements_by_class_name('android.widget.Button')
skipwhatnew[1].click()
网友评论