Đô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.
Nội dung chính
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:
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:\\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