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(“标签名[属性名*(或^,或$)='属性值']”)