標籤:charset 尾碼 select 對象 import 直接 單選 -- get
本篇主要介紹單選框和複選框的操作
一、認識單選框和複選框
1.先認清楚單選框和複選框長什麼樣
2.各位小夥伴看清楚哦,上面的單選框是圓的;複選框是方的,這個是業界的標準,要是開發小夥伴把表徵圖弄錯了,可以先抽他了。
二、radio和checkbox源碼
1.的html源碼如下,把下面這段複雜下來,寫到文本裡,尾碼改成.html就可以了。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>單選和複選</title>
</head>
<body>
</form>
<h4>單選:性別</h4>
<form>
<label value="radio">男</label>
<input name="sex" value="male" id="boy" type="radio"><br>
<label value="radio1">女</label>
<input name="sex" value="female" id="girl" type="radio">
</form>
<h4>公眾號:從零開始學自動化測試</h4>
<form>
<!-- <label for="c1">checkbox1</label> -->
<input id="c1" type="checkbox">selenium<br>
<!-- <label for="c2">checkbox2</label> -->
<input id="c2" type="checkbox">python<br>
<!-- <label for="c3">checkbox3</label> -->
<input id="c3" type="checkbox">appium<br>
<!-- <form>
<input type="radio" name="sex" value="male" /> Male
<br />
<input type="radio" name="sex" value="female" /> Female
</form> -->
</body>
</html>
三、單選:radio
1.首先是定位選擇框的位置
2.定位id,點擊表徵圖就可以了,代碼如下(擷取url地址方法:把上面源碼粘貼到文本儲存為.html尾碼後用瀏覽器開啟,在瀏覽器url地址欄複製出地址就可以了)
3.先點擊boy後,等十秒再點擊girl,觀察頁面變化
四、複選框:checkbox
1.勾選單個框,比如勾選selenium這個,可以根據它的id=c1直接定位到點擊就可以了
2.那麼問題來了:如果想全部勾選上呢?
五、全部勾選:
1.全部勾選,可以用到定位一組元素,從上面源碼可以看出,複選框的type=checkbox,這裡可以用xpath文法:.//*[@type=‘checkbox‘]
2.這裡注意,敲黑板做筆記了:find_elements是不能直接點擊的,它是複數的,所以只能先擷取到所有的checkbox對象,然後通過for迴圈去一個個點擊操作
六、判斷是否選中:is_selected()
1.有時候這個選項框,本身就是選中狀態,如果我再點擊一下,它就反選了,這可不是我期望的結果,那麼可不可以當它是沒選中的時候,我去點擊下;當它已經是選中狀態,我就不點擊呢?那麼問題來了:如何判斷選項框是選中狀態?
2.判斷元素是否選中這一步才是本文的核心內容,點擊選項框對於大家來說沒什麼難度。擷取元素是否為選中狀態,列印結果如。
3.返回結果為bool類型,沒點擊時候返回False,點擊後返回True,接下來就很容易判斷了,既可以作為操作前的判斷,也可以作為測試結果的判斷
七、參考代碼:
# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("file:///C:/Users/Gloria/Desktop/checkbox.html")
# 沒點擊操作前,判斷選項框狀態
s = driver.find_element_by_id("boy").is_selected()
print s
driver.find_element_by_id("boy").click()
# 點擊後,判斷元素是否為選中狀態
r = driver.find_element_by_id("boy").is_selected()
print r
# 複選框單選
driver.find_element_by_id("c1").click()
# 複選框全選
checkboxs = driver.find_elements_by_xpath(".//*[@type=‘checkbox‘]")
for i in checkboxs:
i.click()
Selenium2+python自動化19-單選框和複選框(radiobox、checkbox)