选择器获取方法及装置制造方法及图纸

技术编号:8532756 阅读:159 留言:0更新日期:2013-04-04 15:43
本申请涉及一种JQuery选择器获取方法以及装置。该方法包括:对页面元素查找标识选择器、类选择器、属性选择器和/或元素选择器;当标识选择器不存在,以及类选择器或属性选择器不满足选择器唯一性时,将不满足选择器唯一性的类选择器或属性选择器,压入当前元素的选择器压栈中;在设定级数内查找上级元素的标识选择器和/或类选择器;以及当在设定级数内或达到设定级数时查找到上级元素的标识选择器后,将上级元素的标识选择器压入选择器压栈中,以及从该选择器压栈中获取页面元素的JQuery选择器。本申请实现了多个浏览器下,对用户输入的选择器进行校验,也可以逆向获取页面元素的JQuery选择器。

【技术实现步骤摘要】
选择器获取方法及装置
本申请涉及用户界面自动化测试领域,尤其涉及一种JQuery选择器获取方法及>J-U ρ α装直。
技术介绍
用户界面(User interface,简称UI)自动化的页面元素抓取和定位大多是分别进行的。现有的页面元素的抓取方法,可以通过萤火虫(Firebug)的抓取工具,例如通过Firebug的超文本标记语言(HyperText Markup Language,简称HTML)代码查看器,来实现页面元素的抓取。为了抓取特定的网页元素,提高抓取网页元素的精度,需要一个可以代表该网页元素的变量来定位抓取对象。网页元素的可扩展标记(Extensible Markup Language,简称XML)路径语言(XML Path Language,简称XPath)和层叠样式表单 (Cascading Style Sheet,简称CSS)就是这样一个变量。XPath由XML文档中的元素和其他元素组成的层次结构,CSS是一组格式设置规则。页面元素的抓取和定位关键是选择器的写法,而该网页元素的变量XPath和CSS 就是选择器写法的关键。页面元素的抓取就是抓取页面元素的XPath或CSS表达式。得到网页元素的XPath,可以通过Firebug插件,通过HTML代码查看器将当前页面显示为源代码,将鼠标移到选中的代码上,在代码区单击右键,选择“复制XPath”,此时即可获得为该元素的XPath值。为抓取页面元素,除了利用上述方法,还可以利用Firebug中CSS查看器, 获得相应代码的CSS样式。上述页面元素层级结构XPath和CSS样式都要手工记录下来。JQuery (Javascript框架)提供了异常强大的选择器用以协助获取页面元素。 JQuery元素选择器和属性选择器允许通过标签名、属性名或内容对页面元素进行选择。 JQuery元素选择器具体为JQuery使用CSS选择器来选取页面元素。例如$ ( P)选取 〈P〉元素。$( p.1ntro)选取所有类(class) = intro 的 元素。$( p#demo ) 选取标识(id) = demo的第一个元素。JQuery属性选择器具体为JQuery使用 XPath表达式来选择带有给定属性的元素。例如$( [href])选取所有带有href属性的元素。$( [href = ' ])选取所有带有href值等于#的元素。$( [href ! ='])选取所有带有href值不等于#的元素。$( [href$ = / .jpg']) 选取所有href值以.jpg结尾的元素。其中,符号$定义JQuery。因此,页面元素抓取后多采用XPath或CSS路径定位,对于页面元素的定位目前采用Automan通过在控制台(Automan console)上调用其应用程序,绑定IE浏览器,通过输入元素的层级结构如XPath或CSS路径,手工录入JQuery选择器来实现定位页面元素。 上面描述的方案,一方面需要借助Firebug工具抓取并手工记录元素层级结构, 另一方面,需要再借助其它工具Automan console手工输入页面元素的层级结构通过选择器(Selector)定位页面元素。开发和测试方在Π自动化页面元素抓取和定位中辗转于多个工具页面,工作低效耗时。并且,正如上面所描述的,现有的页面元素抓取和定位方式不统一,各用户界面 (UI)自动化产品结合自身特点采用相应的查找方式来抓取和定位页面元素,如通过标识(ID)、类(class)或Xpath生成相应路径来抓取和定位页面元素,但是路径冗长,因此抓取 和定位效率低。另外,由于各测试人员对JQuery语法的不同掌握,造成手工录入JQuery选择器 (selector)的结构不一致,因此页面元素的查找效率受影响,脚本运行耗时,且进行页面元 素查找的软件不具备同步定位符合相应路径结构的元素的功能,因此页面元素的抓取和定 位需辗转于多个工具页面,耗时且低效。因此,如何能找出精确的选择器是对页面元素抓取 和定位的关键。
技术实现思路
本申请的目的是提供一种JQuery选择器获取方法及装置,通过精确获取JQuery 选择器,以减少页面元素的抓取耗时并提高效率。为实现上述目的,本申请提供了一种JQuery选择器获取方法。该方法包括对所选择的页面元素查找标识选择器、类选择器、属性选择器和/或元素选择器;当所述页面元素的所述标识选择器不存在,以及所述类选择器或属性选择器不满 足选择器唯一性时,将所述不满足选择器唯一性的所述类选择器或属性选择器,压入所述 当前元素的选择器压栈中;或者,当不存在标识选择器、类选择器、属性选择器时,将所述元 素选择器压入所述页面元素的选择器压栈中;在设定级数内对所述页面元素向上查找所述页面元素的上级元素的标识选择器 和/或类选择器;以及当在设定级数内或达到所述设定级数时查找到所述上级元素的标识选择器后,将 所述上级元素的标识选择器压入所述选择器压栈中,以及从该压入了所述上级元素的标识 选择器的选择器压栈中获取所述页面元素的JQuery选择器。所述的JQuery选择器获取方法还包括当在达到设定级数时未查找到所述上级 元素的标识选择器,但在所述设定级数内或达到所述设定级数时查找到的所述上级元素的 类选择器满足选择器唯一性时,将所述上级元素的类选择器压入所述选择器压栈中,以及 从该压入了所述上级元素的类选择器的选择器压栈获取所述页面元素的JQuery选择器。所述的JQuery选择器获取方法还包括当在达到设定级数时未查找到所述上级 元素的标识选择器,以及在达到所述设定级数时查找到的所述上级元素的类选择器不满 足选择器唯一性时,将所述上级元素的类选择器压入所述选择器压栈中,以及将该压入了 所述上级元素的类选择器的选择器压栈取出选择器进行索引校验指定满足唯一性的选择 器,将所述指定的满足唯一性的选择器确定为所述页面元素的JQuery选择器。所述的JQuery选择器获取方法还包括当所述页面元素的所述标识选择器存在, 所述标识选择器确定为所述页面元素的JQuery选择器。所述的JQuery选择器获取方法还包括所述页面元素的类选择器或属性选择器 满足选择器唯一性时,将所述满足选择器唯一性的所述页面元素的类选择器或属性选择器 确定为所述页面元素的JQuery选择器。本申请还提供了一种JQuery选择器获取装置,该装置包括页面元素选择器单元,用于查找所述页面元素的标识选择器、类选择器、属性选择 器和/或元素选择器;选择器唯一性校验单元,用于对所述页面元素的类选择器或者属性选择器进行唯 一性校验,或者对所述页面元素向上查找所述页面元素的上级元素的类选择器进行唯一性 校验;选择器压栈单元,用于当所述页面元素的所述标识选择器不存在,以及所述类选 择器或属性选择器不满足选择器唯一性时,将所述不满足选择器唯一性的所述类选择器或 属性选择器,压入所述当前元素的选择器压栈中;或者当不存在标识选择器、类选择器、属 性选择器时,将所述元素选择器压入所述页面元素的选择器压栈中;上级元素选择器单元,用于在设定级数内对所述页面元素向上查找所述页面元素 的上级元素的标识选择器和/或类选择器;元素选择器确定单元,用于当所述上级元素选择器单元本文档来自技高网
...

【技术保护点】
一种JQuery选择器获取方法,其特征在于,包括:对所选择的页面元素查找标识选择器、类选择器、属性选择器和/或元素选择器;当所述页面元素的所述标识选择器不存在,以及所述类选择器或属性选择器不满足选择器唯一性时,将所述不满足选择器唯一性的所述类选择器或属性选择器,压入所述当前元素的选择器压栈中;或者,当不存在标识选择器、类选择器、属性选择器时,将所述元素选择器压入所述页面元素的选择器压栈中;在设定级数内对所述页面元素向上查找所述页面元素的上级元素的标识选择器和/或类选择器;以及当在设定级数内或达到所述设定级数时查找到所述上级元素的标识选择器后,将所述上级元素的标识选择器压入所述选择器压栈中,以及从该压入了所述上级元素的标识选择器的选择器压栈中获取所述页面元素的JQuery选择器。

【技术特征摘要】
1.一种JQuery选择器获取方法,其特征在于,包括 对所选择的页面元素查找标识选择器、类选择器、属性选择器和/或元素选择器; 当所述页面元素的所述标识选择器不存在,以及所述类选择器或属性选择器不满足选择器唯一性时,将所述不满足选择器唯一性的所述类选择器或属性选择器,压入所述当前元素的选择器压栈中;或者,当不存在标识选择器、类选择器、属性选择器时,将所述元素选择器压入所述页面元素的选择器压栈中; 在设定级数内对所述页面元素向上查找所述页面元素的上级元素的标识选择器和/或类选择器;以及 当在设定级数内或达到所述设定级数时查找到所述上级元素的标识选择器后,将所述上级元素的标识选择器压入所述选择器压栈中,以及从该压入了所述上级元素的标识选择器的选择器压栈中获取所述页面元素的JQuery选择器。2.根据权利要求1所述的JQuery选择器获取方法,其特征在于,还包括 当在达到设定级数时未查找到所述上级元素的标识选择器,但在所述设定级数内或达到所述设定级数时查找到的所述上级元素的类选择器满足选择器唯一性时,将所述上级元素的类选择器压入所述选择器压栈中,以及从该压入了所述上级元素的类选择器的选择器压栈获取所述页面元素的JQuery选择器。3.根据权利要求2所述的JQuery选择器获取方法,其特征在于,还包括 当在达到设定级数时未查找到所述上级元素的标识选择器,以及在达到所述设定级数时查找到的所述上级元素的类选择器不满足选择器唯一性时,将所述上级元素的类选择器压入所述选择器压栈中,以及将该压入了所述上级元素的类选择器的选择器压栈取出选择器进行索引校验指定满足唯一性的选择器,将所述指定的满足唯一性的选择器确定为所述页面元素的JQuery选择器。4.根据权利要求1至3中任一项所述的JQuery选择器获取方法,其特征在于,还包括当所述页面元素的所述标识选择器存在,所述标识选择器确定为所述页面元素的JQuery选择器。5.根据权利要求1至3中任一项所述的JQuery选择器获取方法,其特征在于,还包括所述页面元素的类选择器或属性选择器满足选择器唯一性时,将所述满足选择器唯一性的所述页面元素的类选择器或属性选择器确定为所述页面元素的JQuery选择器。6.根据权利要求1至3中任一项所述的JQuery选择器获取方法,其特征在于,还包括当在所述设定级数内或达到所述设定级数时未查找到所述上级元素的标识或类选择器时,对所述选择器压栈取出选择器,进行索引校验指定满足唯一性的选择器,将所述指定的满足唯一性的选择器作为所述页面元素的JQuery选择器。7.根据权利要求1至3中任一项所述的JQuery选择器获取方法,其特征在于,所述对所选择的页面元素查找标识选择器、类选择器、属性选择器和/或元素选择器具...

【专利技术属性】
技术研发人员:谢林玲刘磊曾建
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1