Je suis nouveau dans le monde de Selenium, je travaille actuellement sur Selenium Webdriver et je veux sélectionner une valeur dans une liste déroulante. L'id=periodId et l'option sont nombreux en ce sens que j'essaie de sélectionner les 52 dernières semaines.
Voici le code 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 des moyens de cliquer sur le menu déroulant.
J'ai essayé avec les lignes de l'exemple ci-dessus, mais j'obtiens une erreur telle que L'élément n'est pas actuellement visible et ne peut donc pas être utilisé. Durée de la commande ou timeout : 32 millisecondes Les valeurs des listes déroulantes sont au format du widget jquery multiselect.
Il suffit d'envelopper votre WebElement dans Select Object comme indiqué ci-dessous.
Select dropdown = new Select(driver.findElement(By.id("identifier")));
Une fois que c'est 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, disons 'Programmeur' ; vous pouvez faire
dropdown.selectByVisibleText("Programmer " ;);
ou
dropdown.selectByIndex(1);
ou
dropdown.selectByValue("prog");
Essayez ça :
driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");