一、前言
本次總結是對之前內容的擴充selenium3+python自動化6-基本操作總結(鍵盤、鼠標、select下拉框) ,包含單元框和復選框操作、table定位等內容。
二、單選框(radiobox)和復選框(checkbox)操作
1.認識單選框和復選框
html代碼如下:
<html> <head> <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>
2.單選框操作
選擇哪個選項就直接定位對應的選項,進行點擊操作。
3.復選框操作
①勾選單個框:選擇哪個現象就直接定位對應的選項,進行操作
②全部勾選:找到選項中共同的屬性,可以用xpath定位到一組元素,結合for循環一個一個去操作
4.判斷是否選中(is_selected())
有時這個選項本身就是選中的,如果再點擊一下,就反選了,所以在操作選項框之前先判斷選項框有沒有選中,如果沒有再進行下面的操作。用is_selected()來判斷是否是選中狀態,返回結果為bool類型,沒點擊時候返回False,點擊后返回True。
5.實際應用
以上面HTML為例進行單選框和復選框操作,代碼如下:
from selenium import webdriver from time import sleep driver=webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/%E5%BC%A0%E5%85%A8/Desktop/box.html') sleep(2) #單選框操作 s=driver.find_element_by_id('boy').is_selected() # print(s)#沒選中狀態下,看is_selected()返回值 if s==False: driver.find_element_by_id('boy').click() sleep(2) #復選框操作 #勾選單個 driver.find_element_by_id('c1').click() sleep(2) #全選 elements=driver.find_elements_by_xpath('//*[@type="checkbox"]') for i in elements: if i.is_selected()==False: i.click() sleep(2) driver.quit()
三、table定位
1.認識table
源碼如下:
<html> <head> <title>Table測試模板</title> </head> <body> <table border="1" id="myTable"> <tr> <th>QQ群</th> <th>QQ號</th> <th>群主</th> </tr> <tr> <td>selenium自動化</td> <td>232607095</td> <td>YOYO</td> </tr> <tr> <td>appium自動化</td> <td>512200893</td> <td>YOYO</td> </tr> </table> </body> </html>
2.table特性
- table頁面查看源碼一般有這幾個明顯的標簽:table、tr、th、td
- <table>表示一個表格
- <tr>表示這個表格中間的一個行
- </th> 定義表頭單元格
- </td> 定義單元格標簽,一組<td>標簽將將建立一個單元格,<td>標簽必須放在<tr>標簽內
3.實際應用
表格定位常用xpath或者css,以定位上面表格中的“appium自動化為例”,代碼如下:
from selenium import webdriver from time import sleep driver=webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/%E5%BC%A0%E5%85%A8/Desktop/table.html') sleep(2) #通過xpath定位“appium自動化” t1=driver.find_element_by_xpath('//*[@id="myTable"]/tbody/tr[3]/td[1]') print(t1.text) #通過css定位“appium自動化” t2=driver.find_element_by_css_selector('#myTable > tbody > tr:nth-child(3) > td:nth-child(1)') print(t2.text) driver.quit()