11/08/2018, 19:28

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

Mouse actions 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 ...

Mouse actions 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 vn.viettuts.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:SeleniumWebdriverchromedriver.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
Mouse actions trong Selenium
0