UI自动化——页面查询校验的一个方案

UI自动化中的一个问题

   一个项目中,很多列表式页面有查询的功能,筛选项不一样,筛选项个数不一样,对于此类页面,操作比较类似,一个页面写一个方法,太繁复,怎样能写一个方法覆盖所有页面呢?笔者带来一个方案,供大家参考。以下图的筛选页面为例:链接为:https://iweb.gfgroup.com.hk/#ManageMoney
在这里插入图片描述
在这里插入图片描述
对该页面进行分析,该页面有四个下拉框筛选项,一个输入框筛选项,其中筛选项可以使用算法随机选择,输入框需要自行输入想要的数据或从数据库中查询出的数据。

总体方案说明

  我们要写一个方法实现下列校验:

  1. 每个筛选项单项查询可以查出来,查询结果正确,从查询结果中的显示列表数据来校验是否与筛选项一致,如上图中:我们勾选一个币种,则币种列显示与筛选项一致则说明查询结果正确
  2. 可以随机组合几个查询项组合查询出正确的结果,则对相应列显示作校验
  3. 全组合查询,所有下拉选项都勾选,输入框输入值,校验所有筛选项涉及的显示列显示结果

具体实现

一、 方法定义及参数说明

def searching_check(input_info,drop_item_info,search_button_loc,reset_button_loc,check_list_loc,sample_value):
	'''
	功能:页面查询校验,包括单项查询,随机项组合查询,全组合查询,并对查询结果进行校验
	input_info: 输入框定位和校验信息,字典列表,格式为:[{'loc':输入框定位字符串,'check_position':该查询项结果与列表哪一列比对,input:输入框输入的信息['','']},{…}],如果没有输入框则写[]即可
	drop_item_info:下拉框下拉元素定位信息和校验信息,格式为:[{'loc':下拉框下拉点击点位,'check_position':该查询项结果与列表哪一列对比},{}]
	search_button_loc:查询按钮定位
	reset_button_loc:重置按钮定位(如果有的话,上图中例子没有重置按钮,可以切换页面重置)
	check_list_loc:校验列定位,写出列的基本定位,具体行列可以进行参数化,一般是校验当前页所有显示,具体列号信息在input_info和drop_item_info中的check_position字段
	sample_value:随机项组合取样的个数
	'''

二、 单项、多项、随机项查询遍历的方案
  使用一个二进制字符串来控制各个筛选项是否选择,如果当前数为1就选择,为0不选择,需要根据筛选项写一个生成二进制字符串列表的方法,字符串生成的个数决定了查询校验的次数。举例子:对于单项查询,通过位右移的运算可实现遍历,如图中有5个筛选项,需要生成’10000’,‘01000’,‘00100’,‘00010’,‘00001’五个字符串来进行遍历,全组合遍历则需要字符串为’11111’,随机组合则在五位中随机选择几位是1,如:‘11100’,‘00011’

三、 下拉选项随机选择
  因为每个下拉选项都不一样,需要写一个方法,先获取下拉项所有的选项,可以使用js来实现,效率更高,如下图示例:先计算出有几个下拉带选项,然后依次遍历获取所有选项组成一个列表,使用python中的random的方法即可实现随机选择

document.getElementsByClassName('Tabs mange-money')[0].getElementsByClassName('g-DownSelect type-gamma expand')[0].getElementsByTagName('li').length
document.getElementsByClassName('Tabs mange-money')[0].getElementsByClassName('g-DownSelect type-gamma expand')[0].getElementsByTagName('li')[0].textContent

在这里插入图片描述
四、 结果校验
  对于筛选结果校验,可以选择只校验当前页面显示的条数,也可以下拉显示更多、翻页筛选更多的数据,如果页面有显示当前页面显示多少条,则可以直接取该值作为行号信息,列号信息在输入check_position中已经有了,行列确定一个表中的显示值,校验该值是否跟选择的筛选项、输入的信息一致,如下图所示,下面xpth定位中tr后的数字即行号,td后的数字即列号(此处也可以使用JavaScript来获取)

//div[@class='Tabs mange-money']//table[@style]/tbody/tr[1]/td[9]

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值