此种定位方式定位效率高,推荐使用
find_element_by_css_selector()
常用策略有5种
1. id 选择器 说明 根据id属性来选择
格式 #id
如 #user 选择id属性为user的所有元素driver.find_element_by_css_selector("#user").click()
2. class选择器 说明 前提必须有class属性 根据class属性来选择
格式 .class
如 .Tel //选择class属性值为tel的所有元素driver.find_element_by_css_selector(".Tel").click()
3.元素选择器 说明 根据元素的标签名选择 p 标签
格式 element
如 input // 选择所有input元素driver.find_element_by_css_selector("input").click() // 选择所有的input标签
4.属性选择器 说明: 根据元素的 属性名称和值 来选择
格式 [attribute=value]
如 [type="psword"] //选择所有属性值为password的值driver.find_element_by_css_selector([id='userA']).click()
5.层级选择器 说明 根据元素的父子关系来选择
格式 element > element > 可用空格代替
如 p>input // 返回所有p元素下所有的 input 元素driver.find_element_by_css_selector("p>input").click() // 选择p下面所有的input标签
6.层级加属性结合的方式
driver.find_element_by_css_selector("p [type='pswd']").click() // 选择p下面属性值[type='pswd']的标签
7. CSS定位扩展
1).input[type^="a"] 说明 type属性以a字母开头的元素
2).input[type$="b"] 说明 type属性以d字母结束的元素
3).input[type*="c"] 说明 type属性包含c字母的元素
总结:
css选择器 | 案例 | 说明 |
#id | #user | id选择器 选择id="user"的所有元素 |
.class | .Tel | class选择器 选择class="Tel"的所有元素 |
element | input | 选择所有input标签 |
[attribute=value] | [type="pswd"] | 选择type="pawd"的所有元素 属性的值要用单引号或双引号 |
element>element | p>input | 选择所有父元素为p元素的input元素 可以用空格代替 |