Comment faire pour sélectionner une valeur dropdown dans Selenium WebDriver en utilisant Java

je suis nouveau au sélénium , je travaille actuellement sur selenium webdriver je veux sélectionner une valeur à partir de la liste déroulante. L'id=periodId et l'option est beaucoup dans que je essaye 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>

s'il vous Plaît me suggérer quelques façons de cliquez sur le menu déroulant.

j'ai essayé avec les lignes d'exemple ci-dessus mais je reçois une erreur telle que L'élément N'est pas actuellement visible et ne peut donc pas être interagi avec Durée de la commande ou délai d'attente: 32 millisecondes les valeurs de drop-Down sont le format jQuery multi-select widget

38
demandé sur Ahmed Ashour 2013-11-22 10:48:13

11 réponses

il suffit d'envelopper votre WebElement dans L'objet Select comme indiqué ci-dessous

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

une Fois cela fait, vous pouvez sélectionner la valeur souhaitée de 3 façons. Considérez un fichier HTML comme ceci

<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 déroulante ne

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

pour sélectionner son option dire 'programmeur' vous pouvez faire

dropdown.selectByVisibleText("Programmer ");

ou

dropdown.selectByIndex(1);

ou

 dropdown.selectByValue("prog");
92
répondu Abhishek Singh 2013-11-22 08:44:41

Si vous voulez écrire sur une seule ligne d'essai

new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer ");
5
répondu 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ù s'est demandé l'extrait ci-dessous fonctionne parfaitement

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

comme discuté ci-dessus, nous avons besoin de mettre en œuvre la classe Select dans le sélénium et de plus, nous pouvons utiliser diverses méthodes disponibles comme :- enter image description here

3
répondu AugustRush 2018-06-04 09:19:59

code pour sélectionner dropdown

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

code pour sélectionner l'option particulière

sélectionner.selectByVisibleText (52 dernières semaines);

0
répondu 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. pilote.selectByVisibleText ("Text");
  2. pilote.selectByIndex (1);
  3. pilote.selectByValue ("prog");

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

il vous aidera certainement beaucoup à résoudre vos questions.

0
répondu Jayant Gupta 2017-07-05 11:03:24

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

-1
répondu 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
répondu Abhishek M S 2015-10-21 12:07:20

je n'ai pas essayé en Sélénium, mais pour Galen test cela fonctionne,

var liste = pilote.findElementByID("periodID"); // ce sera le retour de web de l'élément

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

liste.tapetext ("14w"); / / cette option sélectionnera"14w".

vous pouvez essayer cela dans le sélénium, le travail de galène et de sélénium sont similaires.

-1
répondu ajayv 2015-12-09 08:52:54

tout D'abord importer le paquet comme :

import org.openqa.nium.soutien.interface.Sélectionnez;

ensuite écrire en ligne:

Sélectionner (pilote.findElement(Par.id("sampleid"))).selectByValue("SampleValue");

-1
répondu Vishnu More 2016-01-13 09:26:00

essaye ceci:

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