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

selenium的css定位

id屬性 key select click 子元素 xpath定位 選擇 sele lec

使用xpath定位,基本能解決定位的需求,這裏介紹cdd定位,是因為css定位更快,語法更簡潔

一、css的屬性定位

1、css可以通過元素的id、css、class 三個常規屬性來定位到

如下是百度輸入框的html代碼

<input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd">

css用 # 來表示id屬性,如#kw

driver.find_element_by_css_selector("#kw").send_keys("python")

css用 . 來表示 class屬性,如: .s_ipt

driver.find_element_by_css_selector(".s_ipt").send_keys("python")

css直接用便簽名稱,無任何表示符,如 input

driver.find_element_by_css_selector("input").send_keys("python")

二、css的其它屬性

css除了可以通過標簽、class、id這是三個常規屬性定位,還可以使用其他屬性定位

css通過name屬性來定位

driver.find_element_by_css_selector("[name=‘wd‘]").send_keys("python")

css通過autocomplete屬性定位

driver.find_element_by_css_selector("[autocomplete=‘off‘]").send_keys("python")

三、css標簽

driver.find_element_by_css_selector("input:contains("kw")").send_keys("python")

css通過標簽與class屬性的組合定位

driver.find_element_by_css_selector("input.s_ipt").send_keys("python")

css通過標簽與id屬性的組合定位

driver.find_element_by_css_selector("input#kw").send_keys("python")

css通過標簽與其他屬性組合定位

driver.find_element_by_css_selector("input[id=‘kw‘]").send_keys("python")

四、css的層級關系

1、css也有與xpath同樣功能的層級定位關系

2、如下面xpath的定位語法可以用css實現

1⃣?//form[@id=‘form‘]/span/input

2⃣?//form[@class=‘fm‘]/span/input

對應的css語法如下

1⃣?form#form>span>input

2⃣?form.form>span>input

五、css索引

1、百度設置頁面顯示條數html代碼如下

<select id="nr" name="NR">

<option selected="" value="10">每頁顯示10條</option>

<option value="20">每頁顯示20條</option>

<option value="50">每頁顯示50條</option>

</selected>

2、css通過索引‘ tag_name:nth-chile(1) ‘來定位子元素,與xpath的語法差異有點大,但很好理解

driver.find_element_by_css_selector("select#nr>option:nth-child(1)").click() # 選擇第一個option

driver.find_element_by_css_selector("select#nr>option:nth-child(2)").click() # 選擇第二個option

driver.find_element_by_css_selector("select#nr>option:nth-child(3)").click() # 選擇第三個option

六、css的邏輯運算

css也可以實現邏輯勻速哪,同時匹配兩個實行,這裏跟xpath不一樣,無需寫關鍵字 and

driver.find_element_by_css_selector("inpur[id=‘kw‘][name=‘wd‘]").send_keys("python")

七、css模糊匹配

css模糊匹配的 contains("??")

selenium的css定位