Selenium - Multi Select Action
A volte saremmo in una situazione per selezionare due o più elementi in una casella di riepilogo o in un'area di testo. Per capire lo stesso, dimostreremmo una selezione multipla dall'elenco utilizzando 'https://demos.devexpress.com/aspxeditorsdemos/ListEditors/MultiSelect.aspx'.
Esempio
Diciamo, vogliamo selezionare 3 elementi da questo elenco come mostrato di seguito -
Vediamo come programmare per questa funzionalità:
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.interactions.Action;
public class webdriverdemo {
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.navigate().to("http://demos.devexpress.com/aspxeditorsdemos/ListEditors/MultiSelect.aspx");
//driver.manage().window().maximize();
driver.findElement(By.id("ContentHolder_lbSelectionMode_I")).click();
driver.findElement(By.id("ContentHolder_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"));
System.out.println(options.size());
Action multipleSelect =
builder.keyDown(Keys.CONTROL).click(options.get(2)).click(options.get(4)).click(options.get(6)).build();
multipleSelect.perform();
driver.close();
}
}
produzione
Dopo aver eseguito lo script, gli elementi verranno selezionati come mostrato sopra e la dimensione della casella di riepilogo verrà stampata anche nella console.