編輯框
-
無缺省值:第二個輸入框
-
- 可直接對輸入框進行編輯:
-
driver.find_element_by_id('input2').send_keys('selenium')
-
- 可直接對輸入框進行編輯:
-
有缺省值:第一個輸入框,默認 test
- 此時,如果我們直接對第一個輸入框進行編輯,會發現與預期結果不符
-
driver.find_element_by_id('input1').send_keys('selenium')
-
- 此時,如果我們直接對第一個輸入框進行編輯,會發現與預期結果不符
-
-
因此,如果需要對存在默認值的輸入框進行編輯,則需先進行清除操作,然后再進行編輯
-
driver.find_element_by_id('input1').clear()
-
driver.find_element_by_id('input1').send_keys('selenium')
-
-
單選框
-
單選框,一般會默認選中其中一個
-
點選時,有且只能選中一個,所以再進行操作時,無需判斷是否存在默認值
-
示例:選擇女性
-
driver.find_element_by_css_selector('input[value="female"]').click()
-
多選框(勾選框)
-
如果選中某一項,點擊該項,會取消選中
-
如果該項未被選中,點擊該項,會被選中
-
示例:兩項均選中
-
先查看元素
-
-
-
我們會發現默認選中的,會存在一個 checked 的屬性
-
因此我們可以想到一個思路
- 將默認選中的點選,即取消選中
-
driver.find_element_by_xpath('//*[@name="course"][@checked]').click()
-
- 將默認選中的點選,即取消選中
-
-
然后勾選我們想要的元素
-
driver.find_element_by_css_selector('input[value=python]').click()
-
driver.find_element_by_css_selector('input[value=selenium]').click()
-
-
-
復選框
-
點擊某項,即可選中某一項,不會多選
-
已選中的再次點擊該項,不會取消選中
-
按住 鍵盤 CTRL 鍵 ,可實現多選
-
若實現對復選框的操作,需要導入 Select類:from selenium.webdriver.support.ui import Select
- 復選框內的元素選擇有 3 種
-
select.select_by_visible_text()
-
select.select_by_value()
-
select.select_by_index()
-
-
示例:選中 瑪莎拉蒂 、蘭博基尼 和 法拉利
from selenium import webdriver # 導入 Select from selenium.webdriver.support.ui import Select driver = webdriver.Chrome() # 打開網址;地址需要修改 driver.get('file:///C:/Users/wss/Desktop/test.html') # 獲得相應的WebElement select = Select(driver.find_element_by_id("select")) # 先取消選擇所有的選項 select.deselect_all() # 通過文本選中 瑪莎拉蒂 select.select_by_visible_text("瑪莎拉蒂") # 通過 value 值選中 蘭博基尼 select.select_by_value("Lamborghini") # 通過 index 選擇元素,索引從0開始 select.select_by_index(2) driver.quit()
下拉框
-
下拉框與復選框一致,均需要導入Select類:from selenium.webdriver.support.ui import Select
-
下拉框為單選,不需要清除默認
-
示例:選擇 男
-
select = Select(driver.find_element_by_id("selectdemo"))
-
select.select_by_visible_text("男")
-
HTML Demo源碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>定位網頁元素練習</title> </head> <body> <p>輸入框測試</p> <div style="color:#0000FF"> <input id="input1" value="test"> <br><br> <textarea id="input2"></textarea> </div> <hr> <p>單選框測試</p> <div> <input type="radio" name="gender" value="male" checked="checked"> 男<br> <input type="radio" name="gender" value="female"> 女<br> </div> <hr> <p>多選框測試</p> <div> <input type="checkbox" name="course" value="python" > Python基礎 <br> <input type="checkbox" name="course" value="selenium" checked> Selenium自動化 </div> <hr> <p>復選框測試</p> <select id="select" multiple> <option value="Maserati">瑪莎拉蒂</option> <option value="Lamborghini">蘭博基尼</option> <option value="Ferrari" selected="selected">法拉利</option> <option value="Porsche">保時捷</option> </select> <hr> <p>下拉框測試</p> <select id="selectdemo"> <option value="male">男</option> <option value="female" selected="selected">女</option> </select> </body> </html>