一. 单一属性定位(id用“#”,class用“.”)
1:type selector
driver.find_element_by_css_selector('input')
2:id 定位
driver.find_element_by_css_selector('#kw')
3:class 定位
driver.find_element_by_css_selector('.s_ipt')
4:其他属性定位
driver.find_element_by_css_selector('[name='wd']')
driver.find_element_by_css_selector("[type='text']")
二.组合属性
1:id组合属性定位
driver.find_element_by_css_selector("input#kw")
2:class组合属性定位
driver.find_element_by_css_selector("input.s_ipt")
3:其他属性组合定位
driver.find_element_by_css_selector("input[name='wd']")
4:仅有属性名,没有值也可以
driver.find_element_by_css_selector("input[name]")
5:两个其他属性组合定位
driver.find_element_by_css_selector("[name='wd'][autocomplete='off']")
三.模糊匹配属性值的方法
1>匹配属性包含so关键字字符串的元素,以符号 * 指明需要模糊匹配。
driver.find_element_by_css_selector("input[class *='so']")
2>匹配属性值为字符串开头的方法
driver.find_element_by_css_selector("input[class^='btn']")
3>匹配属性值字符串结尾的方法
driver.find_element_by_css_selector("input[class$='s_btn']")
四.层级定位
1:父子层级定位元素
driver.find_element_by_css_selector('form#form>span>input')
#id是form的form下面的span下面的input
2:伪类定位元素
driver.find_element_by_css_selector('#u_sp>a :nth-child(1)')
#id为u_sp的下面的第一个a标签。
-在冒号前一定要有空格,否则就定位不到期望的元素 -
3:E :nth-last-child(n),如字面意思:倒数第几个标签
4:E :first-child,第一个标签
5:E :last-child,最后一个标签
6:E :only-child,唯一的标签
五.兄弟同级元素(“+”连接)
1.driver.find_element_by_css_selector("div#div1>input + a")
六.多元素选择器,CSS定位方式支持多元素选择器,也就是一次可以同时选择多个相同的标签,也可以同时选择多个不同的标签,不同标签间用用英文的逗号(,)隔开。
1.driver.find_element_by_css_selector("div#div1, input , img") 同时查找所有ID属性值为div1的div元素,所有的input元素,所有的img元素。
2022年6月13日补充:
当一个标签确定不了某一元素时使用两个标签同时定位,注意第二个标签是第一个标签的子标签才可以。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)