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
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");
Si vous voulez écrire sur une seule ligne d'essai
new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer ");
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");
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 :-
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);
Vous pouvez utiliser les méthodes suivantes pour gérer déroulant en sélénium.
- pilote.selectByVisibleText ("Text");
- pilote.selectByIndex (1);
- 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.
D'accord avec la réponse de KodS. Aussi, vous devez importer org.openqa.nium.soutien.interface.Sélectionnez; pour Sélectionner de travail.
WebDriver driver = new FirefoxDriver();
WebElement identifier = driver.findElement(By.id("periodId"));
Select select = new Select(identifier);
select.selectByVisibleText("Last 52 Weeks");
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.
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");
essaye ceci:
driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");