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

Selenium 如何每次在for循环中选择不同的下拉值,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我的目标是在脚本中添加3次不同的下拉值 通过使用for,我可以选择并添加相同的值3次,但每次都要选择并添加不同的下拉值 现在我可以添加三次相同的技能,但我想添加三次 请建议如何在每次执行循环时使用不同的值 这是我现在正在使用的代码 for(int i=0; i<=2; i++){ Select skill = new Select(m1.findElement(By.xpath(".//select[@id='skill']"))); skill.selec

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

通过使用for,我可以选择并添加相同的值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);

for(int i=0;i如果要将不同的下拉列表值添加三次,请使用下拉列表。选择ByIndex(索引)

Select skill=new Select(m1.findElement(By.xpath(“.//Select[@id='skill']”));
选择熟练程度=新选择(m1.findElement(By.xpath(“.//Select[@name='熟练程度]”));

对于(int i=1;i如果要将不同的下拉列表值添加三次,请使用下拉列表。选择按索引(index)

Select skill=new Select(m1.findElement(By.xpath(“.//Select[@id='skill']”));
选择熟练程度=新选择(m1.findElement(By.xpath(“.//Select[@name='熟练程度]”));

对于(int i=1;i技能下拉列表中有多少个选项?我还建议您在for循环之外只初始化一次“技能”和“熟练程度”。技能下拉列表中有14个值,每次for循环执行select skil时,我必须选择至少三个不同的技能值l\nAngularJS\nCake PHP framework\nCI PHP framework\nDot Net\nHTML5\nJava\nJavaScript\nJquery\nJquery\nJqueryAjax\nMSSQL\n技能下拉列表中有多少选项?我还建议您在for循环之外只初始化一次“技能”和“熟练程度”。技能下拉列表中有14个值,并且每次for循环执行select skill\nAngularJS\nCake PHP framework\nCI PHP framework\nDot Net\nHTML5\nJava\nJavaScript\nJquery\nJquery\nJqueryAjax\nMSSQL时,我必须选择至少三个不同的技能值。如果要添加only下拉列表的前3个值。如果要添加不同的值,则每次在for循环中生成一个随机数,并在此处传递值-skill.selectByIndex(随机);proficiency.selectByIndex(随机);还应确保生成的随机值介于1和内部存在的总选项之间dropdown@sers,非常感谢您的编辑。我感谢您的努力。@AritroSen:没错。不过,我已经提供了他如何实现选择3个不同值的解决方案。非常感谢,这种方法对我很有效。您能详细说明一下随机值吗数字生成方法在下一个任务中对我很有用抱歉打扰你,我是StackOverflow的新手,所以你能告诉我如何接受你的代码吗?如果你只想添加下拉列表的前3个值,这个答案是正确的。如果你想添加不同的值,那么每次在fo中生成一个随机数r循环并在此处传递值-skill.selectByIndex(随机);experience.selectByIndex(随机);还应确保生成的随机值介于1和内部存在的总选项之间dropdown@sers,非常感谢您的编辑。我感谢您的努力。@AritroSen:没错。不过,我已经提供了他如何实现选择3个不同值的解决方案。非常感谢,这种方法对我很有效。您能详细说明一下随机值吗数字生成方法下一个任务对我很有用抱歉打扰你,我是StackOverflow的新手,你能告诉我如何接受你的代码吗
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);
}
    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);
    }