Selenium+java - 下拉框處理

Refain發表於2019-08-01

常見下拉框也分兩種:一種是標準控制元件和非標準控制元件(一般為前端開發人員自己封裝的下拉框),本篇文章中將重點講解標準下拉框操作。

1、Select提供了三種選擇某一項的方法

  • select.selectByIndex # 通過索引定位
  • selectByValue # 通過value值定位
  • selectByVisibleText # 通過可見文字值定位

使用說明:

  • index索引是從“0”開始;
  • value是option標籤中value屬性值定位;
  • VisibleText是在option是顯示在下拉框的文字;

2、Select提供了三種返回options資訊的方法

  • getOptions() # 返回select元素所有的options
  • getAllSelectedOptions() # 返回select元素中所有已選中的選項
  • getFirstSelectedOption() # 返回select元素中選中的第一個選項

3、Select提供了四種取消選中項的方法

  • select.deselectAll() # 取消全部的已選擇項
  • deselectByIndex() # 取消已選中的索引項
  • deselectByValue() # 取消已選中的value值
  • deselectByVisibleText() # 取消已選中的文字值

4、被測頁面程式碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Select控制元件練習案例</title>
</head>
<body>

<h4>請選擇你的英雄:</h4>
<select id="select">
    <option value="1">李白</option>
    <option selected="selected" value="2">韓信</option>
    <option value="3">典韋</option>
    <option value="4"></option>
</select>
</body>
</html>

具體示例程式碼如下:

package com.brower.demo;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.util.concurrent.TimeUnit;

public class TestSelectDemo {

    WebDriver driver;

    @BeforeClass
    public void beforeClass() {
        System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");
        driver = new ChromeDriver();
    }

    @Test
    public void testSelectDemo() {
        //開啟測試頁面
        driver.get("file:///C:/Users/Administrator/Desktop/SelectDemo.html");
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        //獲取select元素物件
        WebElement element = driver.findElement(By.id("select"));
        Select select = new Select(element);
        //根據索引選擇,選擇第1個英雄:李白
        select.selectByIndex(0);
        //根據value值選擇第4個英雄:凱
        select.selectByValue("4");
        //根據文字值選擇第2個英雄:韓信
        select.selectByVisibleText("韓信");
        //判斷是否支援多選
        System.out.println(select.isMultiple());

    }

    @AfterClass
    public void afterClass() {
        driver.quit();
    }
}

以上便是關於select控制元件處理的演示案例,具體實踐還需要結合實際的工作需要來進行。

相關文章