CssSelector常用定位方式总结

CSS选择器的常见语法:

1.  根据 标签定位 tagName(定位的是一组,多个元素)

e.g:find_element_by_cssSelector("div")

2. 根据 id属性定位(注意id使用#表示

e.g: find_element_by_cssSelector("#eleid")

e.g: find_element_by_cssSelector("div#eleid")

3. 根据className属性定位(注意class属性使用.)

e.g: find_element_by_cssSelector("div.eleclass")

4. 根据元素属性定位

 4.1 精确匹配:

     e.g: find_element_by_cssSelector("div[name=elename]")  #属性名=属性值,精确值匹配

     e.g: find_element_by_cssSelector("a[href]") #是否存在该属性,判断a元素是否存在href属性

注意:如果 class属性值 里带空格,用.来代替空格

  4.2 模糊匹配

     e.g: find_element_by_cssSelector("div[name^=elename]") #从起始位置开始匹配

     e.g:  find_element_by_cssSelector("div[name$=name2]") #从结尾匹配

     e.g: find_element_by_cssSelector("div[name*=name1]") #从中间匹配,包含

4.3 多属性匹配

    e.g: find_element_by_cssSelector("div[type='eletype][value='elevalue']") #同时有多属性

   e.g: find_element_by_cssSelector("div.eleclsss[name='namevalue'] #选择class属性为eleclass并且name为namevalue的div节点

    e.g: find_element_by_cssSelector("div[name='elename'][type='eletype']:nth-of-type(1) #选择name为elename并且type为eletype的第1个div节点

5. 定位子元素 (A>B)

   e.g: find_element_by_cssSelector("div#eleid>input") #选择id为eleid的div下的所有input节点

   e.g: find_element_by_cssSelector("div#eleid>input:nth-of-type(4) #选择id为eleid的div下的第4个input节点

   e.g: find_element_by_cssSelector("div#eleid>nth-child(1)") #选择id为eleid的div下的第一个子节点

6. 定位后代元素 (A空格B)

   e.g: find_element_by_cssSelector("div#eleid input") #选择id为eleid的div下的所有的子孙后代的 input 节点

   e.g: find_element_by_cssSelector("div#eleid>input:nth-of-type(4)+label #选择id为eleid的div下的第4个input节点的相邻的label节点

   e.g: find_element_by_cssSelector("div#eleid>input:nth-of-type(4)~label #选择id为eleid的div下的第4个input节点之后中的所有label节点

7. 不为

  e.g: find_element_by_cssSelector("div#eleid>*.not(input)") #选择id为eleid的div下的子节点中不为input 的所有子节点

  e.g: find_element_by_cssSelector("div:not([type='eletype'])") #选择div节点中type不为eletype的所有节点

8. 包含Bycontent

   e.g: find_element_by_cssSelector("li:contains('Goa')") # <li>Goat</li>

   e.g: find_element_by_cssSelector("li:not(contains('Goa'))) # <li>Cat</li>

9. by index

   e.g: find_element_by_cssSelector("li:nth(5)")

 

高阶:

 

 

 

References:

https://www.cnblogs.com/clarke157/p/6432546.html

高级部分截取自虫师的书籍《selenium2 python自动化测试》

 

  • 19
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值