Selenium系列(三) - 詳細解讀針對元素常見的簡單操作


如果你還想從頭學起Selenium,可以看看這個系列的文章哦!

https://www.cnblogs.com/poloyy/category/1680176.html

 

其次,如果你不懂前端基礎知識,需要自己去補充哦,博主暫時沒有總結(雖然我也會,所以我學selenium就不用復習前端了哈哈哈...)

 

針對元素有哪些常見的簡單操作?

  • 點擊
  • 輸入內容、清除內容
  • 返回元素尺寸、坐標
  • 獲取元素標簽文本
  • 獲取元素屬性值
  • 檢查元素:是否可見、是否可點擊、是否已被選擇
  • 表單提交

點擊右邊目錄即可跳轉哦! -------------->>>>>>>>>> 

 

首先,先將一個測試html保存到本地,后續案例就按照這個頁面來演示啦!

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>小菠蘿測試筆記</title>
</head>
<body>

<a>用戶名:</a>
<input id="username" class="username">
<a>密碼</a>
<input id="password" name="password">
<button class="login">登錄</button>
<br>
<p>測試啦</p>
<p>再一次測試啦</p>
<br>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202"
   class="mnav sp dot">終極抗擊肺炎啊</a>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-2020"
   class="mnav sp dot">抗擊肺炎</a>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202s0"
   class="mnav sp dot">抗擊肺炎</a>

<div>
    <ul>
        <li class="li">111</li>
        <li class="li">222</li>
        <li class="li">333</li>
    </ul>
    <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
    </ul>
</div>

</body>
</html>
<button type="button" class="ant-btn1" disabled="disabled">不可點擊元素</button>
<button type="button" class="ant-btn2">可點擊元素</button>

<button type="button" class="ant-btn3" style="display: none">不可見元素</button>
<button type="button" class="ant-btn4" style="display: block">可見元素</button>

<select>
    <option value="volvo"></option>
    <option value="saab">Saab</option>
    <option value="opel">Opel</option>
    <option value="audi" selected>Audi</option>
</select>

 

點擊

from selenium import webdriver

# 加載瀏覽器驅動
driver = webdriver.Chrome("../resources/chromedriver.exe")

# 訪問網址
driver.get("file:///C:/test.html")

# =====通過 元素Class查找(僅返回匹配到的第一個)=====
login_btn = driver.find_element_by_class_name("login")

# 點擊
login_btn.click()

 

輸入內容、清除內容

# 找到id = username的元素
username = driver.find_element_by_id("username")

# 輸入值 張三
username.send_keys("張三")

# 清空內容
username.clear()

 

返回元素尺寸、坐標

# 找到id = username的元素
login_btn = driver.find_element_by_class_name("login")

# 打印 元素寬高
print(f"元素寬高:{login_btn.size}")

# 打印 元素 x , y坐標值
print(f"元素坐標值:{login_btn.location}")

執行結果

元素寬高:{'height': 23, 'width': 42}
元素坐標值:{'x': 457, 'y': 8}

知識點

  • size和location都是實例屬性
  • 返回的都是字典
  • 元素坐標值是通過元素的最左上角和瀏覽器內容區域的左上角來定位的,如下圖

 

獲取元素標簽文本

# 獲取第一個標簽為a的文本
a_text = driver.find_element_by_tag_name("a")
print(a_text.text)

# 獲取第一個標簽為div的文本
div_text = driver.find_element_by_tag_name("div")
print(ul_text.div_text)

執行結果

用戶名:
111
222
333
aaa
bbb
ccc

知識點

  • .text 返回的是標簽里面的文本,如 <html>內容....</html> ,返回的則是中間那些內容
  • 如果標簽內還有子標簽,那也只會獲取子標簽的文本內容,不會獲取標簽,像上面獲取div的text一樣

 

獲取元素屬性值

# 獲取元素屬性值
a_attr = driver.find_element_by_class_name("mnav")
print(a_attr.get_attribute("href"))

執行結果

https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1
_blank
virus-202
mnav sp dot

 

檢查元素:是否可見、是否可點擊、是否已被選擇

# 找到 不可見元素
ant_btn3 = driver.find_element_by_class_name("ant-btn3")
# 找到 可見元素
ant_btn4 = driver.find_element_by_class_name("ant-btn4")

# 查看是否可見
print("不可見元素:", ant_btn3.is_displayed())
print("可見元素:", ant_btn4.is_displayed())

# 找到 不可點擊元素 ant_btn3 = driver.find_element_by_class_name("ant-btn1") # 找到 可點擊元素 ant_btn4 = driver.find_element_by_class_name("ant-btn2") # 查看是否可點擊 print("不可點擊元素:", ant_btn3.is_enabled()) print("可點擊元素:", ant_btn4.is_enabled())
# 找到 未被選中的元素 option1 = driver.find_elements_by_tag_name("option")[0] # 找到 已被選中的元素 option2 = driver.find_elements_by_tag_name("option")[-1] # 查看是否被選擇 print("未被選擇元素:", option1.is_selected()) print("已被選擇元素:", option2.is_selected())

 

執行結果

不可見元素: False
可見元素: True
不可點擊元素: False
可點擊元素: True
未被選擇元素: False
已被選擇元素: True

知識點

  • 某個元素若有 display:none 的樣式則是不可見,否則就是可見
  • 某個元素若有 disabled 屬性則是不可點擊,否則就是可點擊
  • 某個元素若有 selected 屬性則是已被選擇

 

表單提交

driver.get("https://www.baidu.com")

# 找到搜索框
search_text = driver.find_element_by_id('kw')

# 輸入搜索內容
search_text.send_keys('小菠蘿測試筆記')

# 提交表單
search_text.submit()

知識點

  • submit() 方法用於提交表單。
  • 實際場景:在搜索框輸入關鍵字之后的“回車” 操作, 就可以通過該方法模擬
 


免責聲明!

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



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