selenium的css定位
使用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定位