Comment sélectionner une valeur déroulante dans Selenium WebDriver à l'aide de Java


Je suis nouveau sur selenium , je travaille actuellement sur selenium webdriver je veux sélectionner une valeur dans la liste déroulante. L'id=periodId et l'option est nombreuse en ce que j'essaie de sélectionner les 52 dernières semaines.

Voici la balise Html:

<select id="periodId" name="period" style="display: none;">
    <option value="l4w">Last 4 Weeks</option>
    <option value="l52w">Last 52 Weeks</option>
    <option value="daterange">Date Range</option>
    <option value="weekrange">Week Range</option>
    <option selected="" value="monthrange">Month Range</option>
    <option value="yeartodate">Year To Date</option>
</select>

Veuillez me suggérer quelques façons de cliquer sur le menu déroulant.

J'ai essayé avec les lignes d'exemple ci-dessus mais j'obtiens une erreur telle que l'élément n'est pas actuellement visible et peut donc ne pas interagir avec Durée ou délai d'attente de la commande: 32 millisecondes le les valeurs déroulantes sont le format du widget jquery multiselect

Author: Ahmed Ashour, 2013-11-22

11 answers

Il suffit d'envelopper votre WebElement dans Select Object comme indiqué ci-dessous

Select dropdown = new Select(driver.findElement(By.id("identifier")));

Une fois cela fait, vous pouvez sélectionner la valeur requise de 3 façons. Considérons un fichier HTML comme celui-ci

<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>

Maintenant, pour identifier la liste déroulante, faites

Select dropdown = new Select(driver.findElement(By.id("designation")));

Pour sélectionner son option, dites "Programmeur", vous pouvez faire

dropdown.selectByVisibleText("Programmer ");

Ou

dropdown.selectByIndex(1);

Ou

 dropdown.selectByValue("prog");
 92
Author: Abhishek Singh, 2013-11-22 08:44:41

Si vous voulez écrire tout en une seule ligne, essayez

new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer ");
 5
Author: SamK, 2014-04-22 19:18:10

En fait, select sélectionne mais ne place pas les valeurs sélectionnées dans le champ respectif . Où se demandait l'extrait ci-dessous fonctionne parfaitement

driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");
 3
Author: user5027588, 2015-06-19 09:47:02

Comme discuté ci-dessus, nous devons implémenter Select Class dans Selenium et en outre, nous pouvons utiliser diverses méthodes disponibles comme :- entrez la description de l'image ici

 3
Author: AugustRush, 2018-06-04 09:19:59

code pour sélectionnez le menu déroulant

Sélectionnez = Sélectionnez nouveau(pilote.findElement (Par.xpath ("//select [@id= 'periodId']));

code pour sélectionner l'option particauular

Sélectionnez.selectByVisibleText(52 dernières semaines);

 0
Author: Mohan Kumar Dg, 2015-03-31 06:40:14

Vous pouvez utiliser les méthodes suivantes pour gérer déroulant en sélénium.

  1. conducteur.selectByVisibleText("Texte");
  2. conducteur.selectByIndex(1);
  3. conducteur.selectByValue("prog");

Pour plus de détails, vous pouvez vous référer à http://www.codealumni.com/handle-drop-selenium-webdriver/ ce poste.

Cela vous aidera certainement beaucoup dans la résolution de vos requêtes.

 0
Author: Jayant Gupta, 2017-07-05 11:03:24

D'accord avec la réponse de KodS. En outre, vous devez importer org.openqa.nium.soutien.interface.Sélectionnez; pour Sélectionner pour fonctionner.

 -1
Author: Viswanath, 2014-08-01 08:50:17
WebDriver driver = new FirefoxDriver();
WebElement identifier = driver.findElement(By.id("periodId"));
Select select = new Select(identifier);
select.selectByVisibleText("Last 52 Weeks");
 -1
Author: Abhishek M S, 2015-10-21 12:07:20

Je n'ai pas essayé dans Selenium, mais pour le test Galen, cela fonctionne,

Var liste = pilote.findElementByID ("periodID"); / / cela retournera élément web

Liste.cliquez sur (); / / cela ouvrira la liste déroulante.

Liste.typeText ("14w"); / / cela sélectionnera l'option"14w".

Vous pouvez essayer ceci dans le sélénium, le galen et le sélénium fonctionnant sont similaires.

 -1
Author: ajayv, 2015-12-09 08:52:54

Importez d'abord le paquet en tant que:

Importer l'organisation.openqa.nium.soutien.interface.Sélectionner;

Puis écrire en une seule ligne comme:

Nouvelle sélection (driver.findElement(By.id ("sampleid"))). selectByValue ("SampleValue");

 -1
Author: Vishnu More, 2016-01-13 09:26:00

Essayez ceci:

driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");
 -3
Author: user4272927, 2014-11-20 06:00:30