专栏名称: 51Testing软件测试网
51Testing软件测试网,人气最旺的软件测试技术门户,提供软件测试社区交流,软件测试博客,人才服务,测试沙龙,测试杂志,测试资料下载等全方位信息服务,是国内最专业的软件测试就业培训、企业服务供应商...
目录
相关文章推荐
51好读  ›  专栏  ›  51Testing软件测试网

看了这个解决方案,我终于明白Selenium自动化框架下的定位问题!(有彩蛋)

51Testing软件测试网  · 公众号  · 测试  · 2019-09-26 17:30

正文

请到「今天看啥」查看全文



对象的定位就是发现对象的特点,应用对象的特点进行描述找到对象的过程。但是如果这个对象没有任何特点,它的属性不是不确定就是和页面中的其他对象相同该怎么办呢。在实际应用中我们就经常会遇到想定位的对象用上边介绍的直接定位法无法定位到情况。 下面举一个例子来分析一下它的特点:
下图是被测系统的交易菜单列表的一部分:
分析每个菜单的HTML代码,发现每一个菜单节点都是多个对象的组合。
以会计估值系统这个菜单为例,下边包含如下对象:
对象1为加号前边的空白处,
对象2为加号按钮,
对象3为文件夹图标,
对象4为菜单文字内容。
在手工测试时,我们点击菜单便可以打开菜单下的内容,操作的其实是加号按钮,单击其他对象无法实现打开菜单的功能。但是想定位到加号按钮,应用上文总结的所有直接定位方法都无法做到, 主要有两方面原因:
1、应用该对象的其他属性信息无法唯一定位。 下图为“会计估值系统”菜单对应的加号对象和“通用参数维护”菜单对应的加号对象的属性信息对比,可以看到除了id对象之外,class属性值都为“x-tree-ec-icon x-tree-elbow-plus”,src属性值都为“http://10.233.93.65:234/FCA/images/s.gif”。下图为两个对象属性信息的内容对比:
2、每次重新打开系统页面,对象的id不同。 下面两个图分别是两次打开系统菜单“会计估值系统”节点对应的加号对象的id值,分别是ext-gen383和ext-gen418。另外应用火狐浏览器取到的css值都是#号加id值,取到的xpath值为//*[@id="id值"],因为id值不断变化所以该属性也无法应用。
下图为第一次打开系统加号对象的id值,
下图为第二次打开系统加号对象的id值。






请到「今天看啥」查看全文