Đô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