1. 程式人生 > >selenium之css定位

selenium之css定位

方式 text 其他屬性 推薦 支持 tro 選擇 type id屬性

實在記不住,爛筆頭就記一下吧。

一. 單一屬性定位

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")

2.driver.find_element_by_css_selector("div#div1>input + a + img")

3.driver.find_element_by_css_selector("div#div1>input + * + img")

4.driver.find_element_by_css_selector("ul#recordlist>p~li")

六.多元素選擇器,CSS定位方式支持多元素選擇器,也就是一次可以同時選擇多個相同的標簽,也可以同時選擇多個不同的標簽,不同標簽間用用英文的逗號(,)隔開。

1.driver.find_element_by_css_selector("div#div1, input , img") 同時查找所有ID屬性值為div1的div元素,所有的input元素,所有的img元素。

Xpath 定位方式與CSS 定位方式很相似,Xpath 功能更強大一些,但是CSS定位方式的執行速度更快一些,selenium官方更推薦用CSS這一種定位方法。

selenium之css定位