selenium定位元素-Css选择器

Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath locator速度快,特别是在IE下面(IE没有自己的XPath 解析器(Parser))他比xpath更高效更准确更易编写,美中不足是根据页面文字时略有缺陷没有xpath直接。
匹配实例:
以百度首页为例定位:
在这里插入图片描述
1.根据标签和ID (id前加#)
gy=driver.find_element_by_css_selector(“div#u1”) #根据地图的上级ID定位
2.根据className (className前加.)
gy=driver.find_element_by_css_selector(".head_wrapper #u1")
3.根据元素属性
精准定位:
gy=driver.find_element_by_css_selector(“a[name=‘tj_trmap’]”) #根据地图的属性定位;属性名=属性值,id,class,等都可写成这种形式

gy=driver.find_element_by_css_selector("#u a[onclick]") #存在属性;根据登录按钮存在onclick属性定位;

gy=driver.find_element_by_css_selector(“a[class=‘mnav’][name=‘tj_trmap’]”) #多属性定位

模糊定位(正则表达式匹配属性)

^ 匹配到属性头部   gy=driver.find_element_by_css_selector("[name^='tj_trm']")
$ 匹配到属性尾部   gy=driver.find_element_by_css_selector("[name$='map']")
* 匹配到属性中间    gy=driver.find_element_by_css_selector("[name*='ma']")

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.子元素 A>B(B是A的子元素)
gy=driver.find_element_by_css_selector("#u1>[name=‘tj_trmap’]")

5.后代元素 A空格B(B是A的后代元素)
在这里插入图片描述
6.div+div 选择紧接再div元素之后的所有div元素
div div 选择div元素内部所有的 div元素
div>div 选择父元素为div元素的所有div元素

在这里插入图片描述
a~a:紧跟这a元素后面的所有a元素,默认选中第一个
在这里插入图片描述

7.子元素

第一个后代元素 :first-child
最后一个子元素 :last-child [类同:first-child]
第2个子元素 :nth-child(N) [类同:first-child]

冒号前有空格,定位到div下所有级别的第一个子元素
在这里插入图片描述
冒号前无空格,定位到div下所有级别的第一个a元素
在这里插入图片描述
div最后一个子元素
在这里插入图片描述
第3个子元素 :nth-child(N) [类同:first-child]
在这里插入图片描述

参考文章:https://www.cnblogs.com/sylvia-liu/p/4469597.html
https://blog.csdn.net/galen2016/article/details/71106900

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值