selenium定位元素 -css_selector

css-selector

css选择器是浏览器用来选择页面元素的

各种符号的意义
  • #:用来表示id属性
  • 小数点【.】:用来表示class属性
  • []:用来表示所有属性:[id=“1”] [class=“a”]
语法:

find_element_by_css_selement(‘’)或者
find_elements_by_css_selement(‘’)

1、css通过元素id、class、标签这个常规属性值直接定位

通过css selector定位有如下三种常规方式:
find_element_by_selector(“#kw”) (#表示通过id定位)
find_element_by_selector(“.s_ipt”) (. 表示通过class定位)
find_element_by_selector("标签名“”)
【单纯通过标签名来定位元素,是有很大局限性的,因为一个页面中,非常大可能的存在标签名的重复,因此无法很精确的定位】

2、css通过其他属性定位

写法:标签+属性 即 标签名【属性名=属性值】

find_element_by_css_selector("input[autocomplete = 'off']")

注:与xpath不同,标签名前不用  // ,[]内的属性名前不用@符号
    如属性名是唯一的,标签名可不用写
3、层级定位

写法:父标签【父标签属性名 = 父标签属性值】>(或者空格) 子标签

find_element_by_css_selector("span[class='bg']>input")
通过找到class=bg属性的span父标签,然后再找到其标签input
4、层级定位

当父标签中有很多相同的子标签时,通过索引找到所需要的定位元素
写法:父标签【父标签属性名 = 父标签属性值】>子标签:nth-child(索引序号)
tip:索引从1开始

find_element_by_css_selector("div[class='cs']>input:nth-child(2)")

注:用css_selector进行元素定位,父标签到子标签都用>或空格。如果用的是>,意思是指第一个子标签
  而用空格的话,则可以为任何子标签。
5、逻辑定位

写法:标签名【属性名1=属性值1】【属性名2=属性值2】

6、模糊匹配

^:以什么开头
$: 以什么结尾
*:匹配所有

     find_element_by_css_selector(“标签名[属性名*(或^,或$)='属性值']”)
7、右键直接copy css-selector的方法
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值