selenium元素定位篇:css定位

在webUI自动化中,通过xpath基本上可以搞定所有的元素定位。但还有一种更为高效的定位方式:css定位。相比xpath定位,css定位的性能或者效率更高。

css定位方式:
方式一:单一属性或标签名定位
1,标签名定位:
以百度首页为例:
selenium元素定位篇:css定位

 

 

 我们可以看到,input标签名有23个。
所以,仅仅通过标签名的css定位有很大局限性。
拓展:通过标签+属性名(没有属性值)也可以进行定位

2,通过单一属性id定位
在css定位中,通过id定位时,需要用#符号表示
selenium元素定位篇:css定位

 

我们可以看到,input#su就可以定位到id属性值为su的input标签了。

3,通过单一属性class定位
在css定位中,通过class定位时,需要使用.符号来表示。
selenium元素定位篇:css定位

 

 

 从图中例子我们可以看出一个细节点:在css定位中,通过class定位时,class属性值中有空格时,说明该class属性有多个属性值,我们定位的时候只能通过其中一个来进行定位,如果需要进行多个class属性值来定位,则用多个.来标识(区别于xpath定位,xpath定位class时,进行精确的定位需要讲class的属性值写全)。
selenium元素定位篇:css定位

 

 

 selenium元素定位篇:css定位

 

 

 可以看到,用到bg和s_btn时,每个属性值前都加了.。

3,通过其他属性值定位
格式:标签名[属性名=属性值]
如:span[name=‘tj_settingicon‘]
selenium元素定位篇:css定位

 

 

 

方法二:属性组合定位
css可以通过多个属性组合定位
举例:a.mnav[href=‘http://news.baidu.com‘]
例子中css定位到class属性为mnav,href属性为http://news.baidu.com的a标签。
我们就能知道,通过多个属性定位时,只要讲属性都写出来即可(和xpath不同,xpath通过多个属性进行组合定位时,需要用到逻辑运算符and,or等等)

方法三:属性值模糊匹配
模糊匹配1:匹配属性值中的其中一个,~=

语法:标签名[属性名~=属性值]
如:span[class~=‘bg‘],可以定位到class属性为含有bg的span标签。
selenium元素定位篇:css定位

 

模糊匹配2:匹配开头:
css匹配以某个字符串开头的属性,用^=
语法:标签名[属性名^=属性值开头部分]
举例:input[class^=‘bg‘],这样可以定位到class属性值为bg开头的input标签
selenium元素定位篇:css定位

 

 

模糊匹配3:匹配结尾
语法:标签名[属性名$=属性值结尾部分]
举例:input[class$=‘s_btn‘],这样可以定位到class属性值以s_btn结尾的input标签了。
selenium元素定位篇:css定位

 

 

方法四:层级定位
在xpath中,用/来表示下一层。在css中用>来表示下一层
selenium元素定位篇:css定位

 

 

关于css的层级定位,待补充完整!

selenium元素定位篇:css定位

上一篇:RocketMQ-初体验RocketMQ(02)_单节点RocketMQ的安装


下一篇:jquery ajax error 函数的参数及使用