當(dāng)前位置:首頁 > IT技術(shù) > 編程語言 > 正文

《手把手教你》系列技巧篇(三十三)-java+ selenium自動(dòng)化測試-單選和多選按鈕操作-上篇(詳解教程)
2021-10-22 16:44:06

1.簡介

??  在實(shí)際自動(dòng)化測試過程中,我們同樣也避免不了會(huì)遇到單選和多選的測試,特別是調(diào)查問卷或者是答題系統(tǒng)中會(huì)經(jīng)常碰到。因此宏哥在這里直接分享和介紹一下,希望小伙伴或者童鞋們在以后工作中遇到可以有所幫助。

2.什么是單選框、復(fù)選框?

  單選按鈕一般叫raido button,就像我們在電子版的單選答題過程一樣,單選只能點(diǎn)擊一次,如果點(diǎn)擊其他的單選,之前單選被選中狀態(tài)就會(huì)變成未選中。單選按鈕的點(diǎn)擊,一樣是使用click方法。多選按鈕,就是復(fù)選框,一般叫checkbox,就像我們在電子版的多選答題過程一樣,可以選擇多個(gè)選項(xiàng),多選按鈕的點(diǎn)擊,同樣是使用click方法。簡單地說,復(fù)選框可以允許你選擇多個(gè)設(shè)置,而單選框則允許你選擇一個(gè)設(shè)置。如下圖所示:

3.被測頁面html源代碼

3.1 radio.html

1.準(zhǔn)備測試練習(xí)radio.html,如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>測試單選</title>
    <style type="text/css">
        .button1 {
            background-color: #f44336; 
            border: none;
            color: white;
            padding: 15px 32px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 28px;
            margin: 20px 300px 50px 300px;
            text-decoration:none;
            color: white;
        }
        #myAnchor
        {
          text-decoration:none;
          color: white;
        }
        #hg
        {
            margin: 20px 300px 50px 300px;
        }
    </style>
</head>
<body>
    <button class="button1"><a id="myAnchor" href="https://www.cnblogs.com/du-hong/">北京-宏哥</a></button></br>
    <div id="hg">
        <div>
        <h3>復(fù)選框 checkbox</h3> 請選擇喜歡的打野英雄:<br>
        <label><input name="checkbox1" type="checkbox" value="李白"/>李白 </label><br>
        <label><input name="checkbox2" type="checkbox" value="韓信"/>韓信 </label><br>
        <label><input name="checkbox3" type="checkbox" value="公孫離" checked="checked"/>公孫離 </label><br>
        <label><input name="checkbox4" type="checkbox" value="露娜"/>露娜 </label><br>
        </div>
        <div>
            <h3>單選框 radio</h3> 選擇喜歡的打野英雄:<br>
            <label><input name="radio" type="radio" value="0" checked="checked"/>李白 </label><br>
            <label><input name="radio" type="radio" value="1"/>韓信 </label><br>
            <label><input name="radio" type="radio" value="2"/>露娜 </label><br>
            <label><input name="radio" type="radio" value="3"/>孫尚香 </label><br>
        </div>
    </div>
</body>
</html>

2.頁面效果,如下圖所示:

4.判斷是否選中:isSelected()

  有時(shí)單選框、復(fù)選框會(huì)有默認(rèn)選中的狀況,那么有必要我在操做單選框或者復(fù)選框的時(shí)候,先判斷選項(xiàng)框是否為選中狀態(tài)。使用element.isSelected()來獲取元素是否為選中狀態(tài),返回結(jié)果為布爾類型,若是為選中狀態(tài)返回true,若是未選中返回為false。至于操做就沒必要多說了,對你們來說是so easy,就點(diǎn)擊就能夠了。html

5.單選框處理

5.1代碼設(shè)計(jì)

5.2參考代碼

具體實(shí)例代碼以下:

package lessons;

import java.util.concurrent.TimeUnit;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 * 
 * 《手把手教你》系列技巧篇(三十三)-java+ selenium自動(dòng)化測試-單選和多選按鈕操作-上篇(詳解教程)
 *
 * 2021年10月16日
 */
public class TestRadio {
    
    @Test 
    public void testRadio() { 
        System.setProperty("webdriver.gecko.driver", ".\Tools\chromedriver.exe");
        
        WebDriver driver =null;
        driver =new ChromeDriver();
        driver.get("file:///C:/Users/DELL/Desktop/test/radio.html"); 
        driver.manage().window().maximize(); 
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
        //獲取第1個(gè)單選框李白元素對象
        WebElement element = driver.findElement(By.cssSelector("[value='0']")); 
        boolean isSelected = element.isSelected(); 
        //查看李白是否被選中
        if (isSelected){ 
            System.out.println("李白已被選中,你只能選下一個(gè)英雄了"); 
        } 
        //獲取第3個(gè)單選框露娜元素對象
        element = driver.findElement(By.cssSelector("[value='2']")); 
        //判斷是否被選中
        if(!element.isSelected()){ 
            //若是未被選中,就能夠直接選了
            element.click(); 
        } 
    }

}

5.3運(yùn)行代碼

1.運(yùn)行代碼,右鍵Run AS->Junit Test,控制臺(tái)輸出,如下圖所示:

2.運(yùn)行代碼后電腦端的瀏覽器的動(dòng)作,如下小視頻所示:

6.復(fù)選框處理

6.1代碼設(shè)計(jì)

6.2參考代碼

具體實(shí)例代碼以下:

package lessons;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 * 
 * 《手把手教你》系列技巧篇(三十三)-java+ selenium自動(dòng)化測試-單選和多選按鈕操作-上篇(詳解教程)
 *
 * 2021年10月16日
 */
public class TestRadio1 {
    
    @Test 
    public void testRadio() { 
        System.setProperty("webdriver.gecko.driver", ".\Tools\chromedriver.exe");
        
        WebDriver driver =null;
        driver =new ChromeDriver();
        driver.get("file:///C:/Users/DELL/Desktop/test/radio.html"); 
        driver.manage().window().maximize(); 
        driver.manage().timeouts().implicitlyWait(300, TimeUnit.SECONDS); 
        //獲取第三個(gè)復(fù)選框公孫離元素對象
        WebElement element = driver.findElement(By.name("checkbox3")); 
        boolean isSelected = element.isSelected(); 
        
        try {
            //若是選中取消選中
            if (isSelected){ 
                element.click(); 
            } 
          //若是選中取消選中,為了看清楚等待一會(huì)
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        /** 
        * 全選操做 
        */ 
        List<WebElement> elements = driver.findElements(By.cssSelector("[type='checkbox']")); 
        for (WebElement webElement :elements) { 
            //點(diǎn)擊選中
            webElement.click(); 
        } 
    }
}

6.3運(yùn)行代碼

1.運(yùn)行代碼,右鍵Run AS->Junit Test,控制臺(tái)輸出,如下圖所示:

2.運(yùn)行代碼后電腦端的瀏覽器的動(dòng)作,如下小視頻所示:

7.小結(jié)

?  注意定位單選或者多選的時(shí)候,要定位前邊選擇框不是定位文字,否則或出現(xiàn)點(diǎn)擊選擇框沒有反應(yīng)的效果。

本文摘自 :https://www.cnblogs.com/

開通會(huì)員,享受整站包年服務(wù)立即開通 >