Kiểm thử tự động - Chọn nhiều hạng mục

Chọn nhiều hạng mục trong Selenium

Đôi khi bạn sẽ gặp tình huống phải để chọn hai hoặc nhiều hạng mục trong một list box hoặc text are.

Bài này sẽ sử dụng trang web https://demos.devexpress.com/aspxeditorsdemos/ListEditors/ MultiSelect.aspx để thực hiện chọn nhiều hạng mục trong Selenium.

Ví dụ

Trong ví dụ này, chúng ta sẽ chon 3 hạng mục trong list 'Phone features' như hình sau:

Ví dụ Chọn nhiều hạng mục trong Selenium

File: MultiSelectDemo.java

package com.hiepsiit.selenium;
 
import java.util.List;
 
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
 
public class MultiSelectDemo {
    public static void main(String[] args) throws InterruptedException {
        System.setProperty("webdriver.chrome.driver", 
                "D:\\SeleniumWebdriver\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
 
        // Open website
        driver.get("http://demos.devexpress.com/aspxeditorsdemos"
                + "/ListEditors/MultiSelect.aspx");
         
        // Maximize the browser
        driver.manage().window().maximize();
         
        // set 'Selection mode' to Multiple
        driver.findElement(
                By.id("ControlOptionsTopHolder_lbSelectionMode_B-1Img"))
                .click();
        driver.findElement(
                By.id("ControlOptionsTopHolder_lbSelectionMode_DDD_L_LBI1T0"))
                .click();
        Thread.sleep(5000);
         
        // Perform Multiple Select
        Actions builder = new Actions(driver);
        WebElement select = driver.findElement(
                By.id("ContentHolder_lbFeatures_LBT"));
        List<WebElement> options = select.findElements(By.tagName("td"));
        Action multipleSelect = builder.keyDown(Keys.CONTROL) // Ctrl Key
                .click(options.get(0)) // 3G
                .click(options.get(3)) // Memory Card Slot 
                .click(options.get(5)) // Touch Screen
                .build();
        multipleSelect.perform();
        System.out.println("Mutil Select: ");
        System.out.println(options.get(0).getText());
        System.out.println(options.get(3).getText());
        System.out.println(options.get(5).getText());
         
        // driver.close();
    }
}

Kết quả:

Mutil Select: 
3G
Memory Card Slot
Touch screen