Selenium中使用CSS定位元素及一些处理

前言

最近项目中使用selenium做web自动化开发,发现用xpath定位只能固定位置的,例如多个卡片相同标签就可以用css来定位并处理。

find_element_by_css_selector()定位元素

方式一 后代或平级关系来选择元素 :

  • 父元素:
    (#)表示通过 id 属性来定位元素
    (.)表示通过 class 属性来定位元素

  • 子元素(后代关系)
    #choose_car option 含空格的,后面的元素不必是前面元素的直接子元素,只要在父元素的里面
    .s_ipt_wr span
    #choose_car>option 含>键的, 后面的元素必须是前面元素的直接子元素
    .s_ipt_wr>span
    ul>ol>li>em 可以是很多级的父子关系

  • 组合型
    #food>span, p 选择id 为food的所有span子元素和所有的p(包括非food的子元素)
    #food>span, #food > p 选择id为food的所有span子元素和所有p子元素
    #food>* 选择id为food的所有子元素
    兄弟节点的选择 (平级关系)
    #food+div 只选择id为food紧跟后面的div
    #food~div 选择id为food后面的div或div们,只需要在id的后面,不需要紧跟

方法二 根据元素的属性及属性值来选择元素 :

  • *[style] 选择所有有stype属性的元素
  • p[spec=len2] 选择spec属性值只等于len2的p元素
  • yp[spec=‘len2 len3’ ] 选择spec属性值只等于len2 len3的p元素 有空的值一定要加引号
  • p[spec*=‘len2’] 选择spec属性值包含len2的p元素
  • p[spec^=‘len2’] 选择spec属性值以len2开头的p元素
  • p[spec&=‘len2’] 选择spec属性值以len2结尾的p元素
  • p[class=special][name=p1] 选择class值等于special,并且name值等于p1的p元素
  • p:nth-child(1) 选择第一个p元素
  • p:nth-last-child(1) 选择倒数第一个p元素(要保证最后一个元素是p)

将页面上class标签属性修改

  • js = document.getElementsByClassName(“level-one”)[0].removeAttribute(“class”); # 删除页面上class为level-one中的class
  • document.getElementsByClassName(“relation-wrapper”)[0].classList.add(“used”); # 将页面上class为relation-wrapper的标签属性加上used,以空格隔开
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值