每次在for循环中如何选择不同的下拉值

时间:2019-02-11 09:07:04

标签: selenium selenium-webdriver

我的目标是在脚本中添加3次不同的下拉值。

通过使用,我可以选择并添加相同的值3次,但每次都希望选择并添加不同的下拉值。

现在我可以添加三次相同的技能,但是我想添加三项。

请建议每次循环执行时如何设置不同的值 这是我现在正在使用的代码。

for(int i=0; i<=2; i++){
        Select skill = new Select(m1.findElement(By.xpath(".//select[@id='skill']")));
        skill.selectByValue(skills);
        Select proficiency = new Select(m1.findElement(By.xpath(".//select[@name='proficiency']")));
        proficiency.selectByValue("3");
        m1.findElement(By.xpath(".//button[@id='addskill']")).click();
        Thread.sleep(2000);

1 个答案:

答案 0 :(得分:2)

如果要添加3次差异下拉菜单值,请使用dropdown.selectByIndex(index)。

Select skill = new Select(m1.findElement(By.xpath(".//select[@id='skill']")));
Select proficiency = new Select(m1.findElement(By.xpath(".//select[@name='proficiency']")));

for(int i = 1; i <= 3; i++){      
    skill.selectByIndex(i);
    proficiency.selectByIndex(i);
    m1.findElement(By.xpath(".//button[@id='addskill']")).click();
    Thread.sleep(2000);
}

OR

  1. 要在下拉菜单项中选择随机值。您需要先知道下拉菜单中有多少项。
    Select skill = new Select(m1.findElement(By.xpath(".//select[@id='skill']")));
    List<WebElement> listOptionDropdown = skill.getOptions();
    int dropdownCount = listOptionDropdown.size();


    Select proficiency = new Select(m1.findElement(By.xpath(".//select[@name='proficiency']")));
    List<WebElement> listOptionDropdown1 = skill.getOptions();
    int dropdownCount1 = listOptionDropdown1.size();


    for(int i = 1; i <= 3; i++){  

        int random = (int)(Math.random());
        random = random*dropdownCount +1;   
        skill.selectByIndex(random);
        int random1 = (int)(Math.random());
        random1 = random1*dropdownCount1 +1;  
        proficiency.selectByIndex(random1);
        m1.findElement(By.xpath(".//button[@id='addskill']")).click();
        Thread.sleep(2000);
    }