selenium3+python自動化10-基本操作2(單選框、復選框、table定位)


一、前言

本次總結是對之前內容的擴充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()

參考博客:https://www.cnblogs.com/yoyoketang/p/6287962.html


免責聲明!

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



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