1欧募、頁面中的單選按鈕和多選按鈕
頁面中的單選按鈕和多選按鈕樣式如下圖:
頁面代碼片段:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
</head>
<body>
<fieldset>
<legend>單選按鈕radio</legend>
<form action="">
<label for=""><input type="radio" name="fruit" value="pg" id="pg">蘋果</label>
<label for=""><input type="radio" name="fruit" value="jz" id="jz">橘子</label>
<label for=""><input type="radio" name="fruit" value="xj" id="xj">香蕉</label>
<label for=""><input type="radio" name="fruit" value="li" id="li" checked="">梨</label>
<label for=""><input type="radio" name="fruit" value="xg" id="xg" disabled="" >西瓜</label>
</form>
</fieldset>
<br>
<fieldset>
<legend>多選按鈕checkbox</legend>
<form action="">
<input type="checkbox" name="checkbox" value="汽車" id="qc">汽車<br>
<input type="checkbox" name="checkbox" value="購物" id="gw">購物<br>
<input type="checkbox" name="checkbox" value="旅游" id="ly" readonly="">旅游 <br>
<input type="checkbox" name="checkbox" value="音樂" id="yy" disabled="">音樂 <br>
</form>
</fieldset>
</body>
</html>
說明:
- 單選按鈕,默認(rèn)選框為圓形,type屬性值為
type="radio"
惠拭。 - 多選按鈕债鸡,默認(rèn)選框為方形江滨,type屬性值為
type="checkbox"
。 - 使用
click()
方法切換選框的狀態(tài):開/關(guān)(選中狀態(tài) or 未選中狀態(tài))厌均。
2唬滑、判斷按鈕是否選中is_selected()
有時候選項框,本身就是選中狀態(tài)棺弊,如果我再點擊一下晶密,它就取消選擇了,這可不是我期望的結(jié)果模她,那么可不可以當(dāng)它是沒選中的時候稻艰,我去點擊下,當(dāng)它已經(jīng)是選中狀態(tài)侈净,我就不點擊尊勿。
如何判斷選項框是選中狀態(tài)?
我們可以通過is_selected()
方法進行判斷畜侦。
語法:
# 返回一個布爾值
元素對象.is_selected()
說明:
返回結(jié)果為bool類型元扔,沒點擊時候返回False,點擊后返回True旋膳,以后我們在操作單選按鈕和多選按鈕的時候澎语,先判斷按鈕是否是選中狀態(tài),再根據(jù)業(yè)務(wù)需求進行操作。
3咏连、單選按鈕的操作
以上邊頁面代碼片段為例:
示例:
"""
1.學(xué)習(xí)目標(biāo):
掌握單選框操作
2.語法
1.定位單選框,進行點擊操作
再進行一下點擊操作盯孙,就是取消選擇
2.在點擊之前,需要判斷單選框是否被選中
元素.is_selected() # 判斷元素是否被選中
3.需求
在頁面中,操作單選框
"""
# 1.導(dǎo)入selenium
from selenium import webdriver
from time import sleep
import os
# 2.打開瀏覽器
driver = webdriver.Chrome()
# 3.打開頁面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)
sleep(2)
# 4.單選框操作
# 4.1 定位單選框
# 定位選項前的按鈕元素,不要定位文字
apple = driver.find_element_by_id("pg")
# 4.2 操作單選框
# 判斷單選框是否被選中
if apple.is_selected():
pass
else:
# 單擊一下祟滴,讓單選按鈕進入選中狀態(tài)
apple.click()
sleep(2)
"""
注意:
被禁用的按鈕是不能被操作的振惰,
也就是按鈕屬性中有disabled=""。
單選按鈕和多選按鈕都是垄懂。
"""
# 5. 操作一組單選框
# 5.1定位所有的單選框
radios = driver.find_elements_by_css_selector("input[type='radio']")
# 5.2 遍歷操作所有的單選框
for radio in radios:
if radio.is_selected():
pass
else:
radio.click()
sleep(1)
# 5.關(guān)閉瀏覽器
driver.quit()
4骑晶、多選按鈕的操作
實現(xiàn)步驟:
- 全部勾選,可以用到定位一組元素草慧,通過復(fù)選框的
type=checkbox
等屬性定位即可桶蛔。 -
find_elements
是不能直接點擊,它是復(fù)數(shù)獲取的元素集漫谷,是一個列表仔雷,所以只能先獲取到所有的checkbox對象,然后通過for循環(huán)去一個個點擊操作舔示。
以上邊頁面代碼片段為例:
示例:
"""
1.學(xué)習(xí)目標(biāo):
掌握復(fù)選框操作
2.語法
2.1 定位復(fù)選框
2.2 操作復(fù)選框
判斷復(fù)選框是否被選中
元素.is_selected()
再進行選擇
3.需求
在頁面中,操作多選框
"""
# 1.導(dǎo)入selenium
from selenium import webdriver
from time import sleep
import os
# 2.打開瀏覽器
driver = webdriver.Chrome()
# 3.打開頁面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)
sleep(2)
# 4. 復(fù)選框操作
# 操作單個復(fù)選框和操作單個單選框一樣
car = driver.find_element_by_id("qc")
# 判斷選框是否被選中
if car.is_selected():
pass
else:
# 單擊一下碟婆,讓單選按鈕進入選中狀態(tài)
car.click()
sleep(2)
# 5. 復(fù)選框全選
# 5.1 定位所有的復(fù)選框
checkboxes = driver.find_elements_by_name("checkbox")
# 5.2 遍歷所有復(fù)選框,并且選擇
for checkbox in checkboxes:
if checkbox.is_selected():
pass
else:
checkbox.click()
sleep(1)
"""
注意:
被禁用的按鈕是不能被操作的,
也就是按鈕屬性中有disabled=""惕稻。
單選按鈕和多選按鈕都是竖共。
"""
# 5.關(guān)閉瀏覽器
driver.quit()
5、選擇部分多選按鈕的操作
寫一種簡單好理解的方式:
# 1.導(dǎo)入selenium
from selenium import webdriver
from time import sleep
import os
# 2.打開瀏覽器
driver = webdriver.Chrome()
# 3.打開頁面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)
sleep(2)
# 4. 選擇部分多選框
# 建立列表填寫將要選擇的復(fù)選框名稱
box_list = ["購物", "旅游"]
# 定位所有的復(fù)選框
checkboxes = driver.find_elements_by_name("checkbox")
# 遍歷選擇
for checkbox in checkboxes:
# 判斷獲取到的復(fù)選框的名稱和在需求勾選的復(fù)選框中
if checkbox.get_attribute("value") in box_list:
# 如果在俺祠,判斷選框是否被選中
if checkbox.is_selected():
pass
else:
# 單擊一下走触,讓單選按鈕進入選中狀態(tài)
checkbox.click()
sleep(1)
"""
注意:
被禁用的按鈕是不能被操作的狼电,
也就是按鈕屬性中有disabled=""剑按。
單選按鈕和多選按鈕都是杰刽。
"""
# 5.關(guān)閉瀏覽器
driver.quit()