AppiumLibrary 联动菜单

AppiumLibrary 联动菜单

在手机自动化过程中,我们会遇到一些联动的菜单。
这种菜单我们很难选择到指定的内容
这里我写一个选择地铁站点的例子

这里需要自己写一个读取csv 文件的功能,自己扩展一下测试库: 把TestLibrary 放到
python_path/Lib/site-packages 目录下 然后重启 Ride 才能生效

#encoding=utf-8
import csv
class TestLibrary:
    """测试测试库的导入"""  
    def getCSV(self,file,model='rb'):
        '''get test data from csv,return list'''
        with open(file,model) as f:
            reader = csv.reader(f)
            data = []
            for row in reader:
                data.append(row)
            for i in xrange(len(data)):
                for j in xrange(len(data[i])):
                    if isinstance(data[i][j],str):
                        data[i][j]=data[i][j].decode('gbk')
                    else:
                        data[i][j]=data[i][j]
            return data

这里看一下这个联动的菜单

这里写图片描述

线路变了之后,站点也会跟着变。这个时候我们可能需要一个二维数组,或者一个测试数据文件。
我们需要在对应目录下面新建 终点.csv 和 起点.csv 两个文件

这里写图片描述

用excel 打开之后这样编辑:第一列线路,
对应行填写手机界面上的站点,注意顺序要和手机上面的一致。

这里写图片描述

然后我们看一下怎样实现这个选择的功能: 这个功能需要两个关键字${Line} 和 ${Station}

首先点击终点这个元素
用 @{终点} 变量去获取 终点.csv 文件中的数据 #注意这个是按行取出的一个List
创建@{tmp} 空的临时List
For 循环,取出@{终点} List 中的每一行 ${row}
把 ${row[1:]} 的值赋值给@{tmp} list变量  # 注意 ${row} 取出的是完整的一行,第一个元素是 线路,${row[1:]} 表示除第一个元素以外的所有元素
然后判断 ${row[0]} 线路 和 给出的变量 ${Line} 是否相等,如果相等就退出循环,这个时候@{tmp} 里面存储的就是线路对应的所有站点,如果不相等,就滑动一格,暂停0.5秒,继续循环。
线路循环完成,这个时候就是站点的循环。 循环 @{tmp} (站点) 里面的所有元素 ${item}, 如果 ${item} 和给出的 ${station} 相等, 就退出循环,否则就,滑动一格,暂停0.5秒,继续循环。
点击页面上的确定按钮,完成选择
验证终点元素中的文本,是否和期望选择的站点一致。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值