Lorsque j'ai cliqué sur inspecter l'élément, voici mon code:

<select _ngcontent-c2="" class="form-control ng-pristine ng-invalid ng-touched" id="type" name="Type" required="">
     <option _ngcontent-c2="" disabled="" value="0: null">Type</option>
     <!----><option _ngcontent-c2="" value="1: account">
       account
     </option><option _ngcontent-c2="" value="2: booking">
       booking
     </option>
</select>

Je veux cliquer sur l'option "1" qui est account, ci-dessous est le code que j'ai essayé:

List <WebElement> Type= driver.findElements(By.id("type"));
Type.get(1).click();

Mais mon script ne clique pas sur l'élément sur lequel je veux cliquer. Quelqu'un peut-il m'aider s'il vous plaît?

0
Narendra Chetan 23 mai 2018 à 14:30

4 réponses

Meilleure réponse

Essayez ce code:

List<WebElement> dropDown =   driver.findElements(By.id("type"));

for(WebElement dd : dropDown ){
           if(dd.getText().contains("account")){
                dd.click();
             }
         }  

Je ne sais pas pourquoi vous n'avez pas essayé la classe Select qui est présente dans Selenium. Pour cela, quelque chose comme:

Select select = new Select(driver.findElement(By.id("type")));
select.selectByVisibleText("account");  
//OR
//select .selectByIndex(1);  
//OR  
//select .selectByValue("1");
0
kripindas 23 mai 2018 à 11:59

Puisqu'il s'agit d'un menu déroulant, il est préférable d'utiliser la classe Select ,

Essayez ce code ci-dessous et importez les bibliothèques appropriées. La bibliothèque est également mentionnée ci-dessous,

import org.openqa.selenium.support.ui.Select;

Code,

String value = "account";
Select select = new Select(driver.findElement(By.xpath("//*[@id='type']")));
select.selectByVisibleText(value);
0
kripindas 23 mai 2018 à 12:09

Directement vous pouvez écrire ce code il va au compte

import org.openqa.selenium.Keys
driver.findElement(By.id("type")).send_keys("account");
0
bhupathi turaga 23 mai 2018 à 12:26

Vous pouvez utiliser la classe sélectionnée comme indiqué ci-dessous.

Select sel = new Select(driver.findElements(By.id("type")));
sel.selectByVisibleText("account");
1
Murthi 23 mai 2018 à 11:49