-1
votes

Comment obtenir une liste d'options pouvant être sélectionnées dans une liste déroulante à l'aide de Selenium et Java?

Je veux obtenir une liste de toutes les options qui peuvent être sélectionnées dans un menu déroulant dans sélénium en utilisant java. Comment puis je faire ça?


2 commentaires

Pouvez-vous ajouter le code que vous avez essayé ou les détails sur le code java?


Dupliquer? stackoverflow.com/questions/16768318/...


3 Réponses :


1
votes

Utilisez cette méthode

getAllSelectedOptions ()

Référez-vous à ce site pour plus d'informations https://www.codota.com/code/java/methods/org.openqa.selenium.support.ui.Select/getAllSelectedOptions


0 commentaires

0
votes

Il existe plusieurs approches pour imprimer les textes à partir des éléments d' options d'un . Idéalement, lorsque vous interagissez avec un vous devez utiliser la classe Select . De plus, pour interagir avec toutes les balises <option> vous devez utiliser la méthode getOptions() . À titre d'exemple pour imprimer les textes des éléments d' option Jour , Mois et Année dans la d'accueil de Facebook https://www.facebook.com/ vous devez utiliser WebDriverWait pour l' elementToBeClickable() et vous pouvez utiliser les stratégies de localisation suivantes.

Options de Day Dropdown utilisant l'attribut id :

[Year, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905]

Options du du mois en utilisant et stream() et map() :

System.out.println(new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("select#year")))).getOptions().stream().map(element->element.getText()).collect(Collectors.toList()));

Sortie de la console:

[Month, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sept, Oct, Nov, Dec]
          

Options de la liste déroulante du mois en utilisant [tag: css_selectors] et stream() et map() dans une seule ligne de code:

Select selectMonth = new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//select[@id='month']"))));
List<String> myMonths = selectMonth.getOptions().stream().map(element->element.getText()).collect(Collectors.toList());
  System.out.println(myMonths);

Sortie de la console:

WebElement dayElement = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("day")));
Select selectDay = new Select(dayElement);
List<WebElement> dayList = selectDay.getOptions();
for (int i=0; i<dayList.size(); i++)
    System.out.println(dayList.get(i).getText());
              


0 commentaires

0
votes

Cette approche peut vous aider à comprendre comment obtenir toutes les options sélectionnables dans la liste déroulante

driver.navigate().to("https://the-internet.herokuapp.com/");
WebDriverWait wait = new WebDriverWait(driver,10,100); 
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@href='/dropdown']"))).click();    
WebElement element = driver.findElement(By.xpath("//select[@id='dropdown']"));
Select select = new Select(element);    
List<WebElement>allOptions = select.getOptions();
        allOptions.forEach(value->{System.out.println(value.getText());});


0 commentaires