Selenium—選擇框的相關操作(單選框、多選框、復選框、下拉框)


編輯框

  • 無缺省值:第二個輸入框

    • 可直接對輸入框進行編輯:
      • 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 種
    1. select.select_by_visible_text()
    2. select.select_by_value()
    3. 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

  • 下拉框為單選,不需要清除默認

  • 示例:選擇 男

    1. select = Select(driver.find_element_by_id("selectdemo"))
    2. 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>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM