元素定位之csslector(选择器定位)
语法:find_element_by_css_lector("css选择器定位策略”) 或者 find_elements_by_css_lector("css选择器定位策略”)
1,css属性定位:
a,css可以通过元素的 id,class,标签这三个常规属性直接定位到。
tips:若⽤id定位,则⽤ #。若⽤class定位,则⽤ .
下⾯是百度搜索框的HTML代码:
通过css lector定位有如下三种常规⽅式:
find_element_by_lector("#kw") (#表⽰通过id定位)
find_element_by_lector(".s_ipt") (. 表⽰通过class定位)
杰出造句
find_element_by_lector("标签名“”) 其实单纯通过标签名来定位元素,是有很⼤局限性的,因为⼀个页⾯中,⾮常⼤可能的存在标签名的重复,因此⽆法很精确的定位。
b,css通过其他属性定位。
通过标签+属性即标签名[属性名=属性值]。还是以百度搜索框为例:
炒青
find_element_by_css_lector("input[autocomplete='off']")
tips:和xpath定位不同的是,标签名前不⽤// ,[ ]内的属性名前不⽤@符号,⽽xpath则需要。其余的规则与xpath相同。
如果属性是唯⼀的,那么标签名可以不⽤写。
c,层级定位。
阅读让我快乐通过⽗标签[⽗标签属性名=⽗标签属性值]>(或者空格)⼦标签我们以百度搜索按钮为例:
find_element_by_css_lector("span[class='bg s_btn_wr']>input")
生命教育主题班会通过搜索按钮的⽗标签中的class属性定位,然后找到其⼦标签input,也就是我们的搜索按钮元素所在。
d,索引定位。
当⽗标签中有很多相同的⼦标签时,通过索引找到所需要定位的元素。
通过⽗标签[⽗标签属性名=⽗标签属性值]>⼦标签:nth-child(索引序号)
tips:索引从1开始
我们以126邮箱的密码输⼊框为例:
花生糕find_element_by_css_lector("div[class='u-input box]>input:nth-child(2)')
记住:⽤css_lector进⾏元素定位,⽗标签到⼦标签都⽤>或空格。如果⽤的是>,意思是指第⼀个⼦标签
⽽⽤空格的话,则可以为任何⼦标签。
e,逻辑定位。
在xpath中,逻辑定位⽤到“and”,"or",“not”,⽽在我们的css_lector中,则不需要。一年级的小蜜瓜
通过标签名[标签名1= 属性值1][标签名2=属性值2]
可爱的微信名同样,我们通过126邮箱的密码输⼊框为例:
f,模糊匹配。
^:以什么开头
大便绿色是什么原因引起的$:以什么结尾
*:匹配所有
find_element_by_css_lector(“标签名[属性名*(或^,或$)='属性值']”)