Selenium自动化 元素定位(Xpath和CSS)

http://www.cnblogs.com/zhongmeizhi/p/6296213.html

http://www.cnblogs.com/zhongmeizhi/p/6296266.html


Xpath的使用方法:

 例子 1:html/body/div[1]/div[2] (如果不熟悉html的朋友们,需要自行百度html。)

   该xpath 表示 : 在 html标签下 -> body标签下 -> 第一个div标签下 -> 第二个div标签

  很好理解,继续

 

 例子 2:.//*[@id='content']/div[2]/ul

   这样会有人不理解了 .//*[@id='content'] 到底是什么意思呢?

    . 代表当前路径

    a//b 表示:在a标签下的子孙辈b标签

    * 可以是任何标签

    [@id='content'] 表示是 id 为 content

  所以:这个例子的意思是: id 为 content 的任何子标签下面 -> 第二个 div标签下 -> ul 标签

  

Xpath基础学习完毕,接下来开始进阶学习

  //p[text()='a']  :文本为 a 的p标签

  //p[text()='a']  : 文本包含 a 的p标签

  //a[@class='abc']   :class 为 a的 p标签 (当然咯。既然可以为 @class 就一定能用 @id ,为什么不联想下 @src 和@href呢?)

  //p[not(@class='a')]   :class 不为 a的 p标签

 

好了,进阶完毕,如果要使用更高阶的Xpath要先属性以上内容,然后联合 Selenium使用

 

Xpath和其他定位方式的比较:(主要是和CSS定位的对比)

  Xpath的最大好处是能向上查找,不过缺点是速度过慢。



CSS定位速度快,功能多,但是不能向上查找,比 xpath好用,是本人认为最好用的定位方式
 
大致用法总结:
 下面都是精华哦

1、*:checked  选中*的checked元素
2、 li.refined.list.group.item (如果class中间有空格,可以.+.+.全写也可以只写任意一个)
    .checkbox[type^='check'][onclick*='Bebe'][checked$='ed'] +a
    (开头^=   包含*=   结尾$= )+a 是选中同级的后面的a
3、 li a        :选中 li 标签的后代 a
5、 li>a       :选中 li 标签的子元素 a
4、 li,a        :选中 li 和 a
5、 li +a      :选中 li 同级的 下一个 a
6、 li ~a       :选中 li 同级的 下面所有的 a
7、 li>a:last-child  /  li>a:last-of-type  : 选中 li 下最后面一个 a
8、 li:not([class*='_'])    : li 中的 calss 不含 '_' 
      li:not(:nth-of-type(1))    : 不含第一个 li 的所有 li
9、 li>a:nth-child(n)   /  li>a:nth-of-type(n) :选中 li 下第 n 个 a
      li>a:nth-last-child(n)   /  li>a:nth-last-of-type(n):选中 li 下,倒数第 n 个 a
    如果 n = odd 表示奇数
    如果 n = even 表示偶数
div h2:nth-child(n) : 当div的第n个子元素是h2的时候
div h2:nth-of-type(n):   div下第n个h2子元素
10、 div[style]     : div中包含 属性style 
11、 li>a:only-child      :li 下只有1个a的 a 标签
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值