在Selenium中使用forr循环添加多个记录

时间:2016-12-09 04:58:01

标签: java selenium

我正在为我的学生管理系统编写一个selenium测试脚本。我有一种情况,我需要输入值并单击相同的按钮15次。所以,我在场景中使用了for循环。

这是我需要测试的屏幕。

mark

所以,我需要添加两个值来标记范围文本框,并从下拉列表中选择成绩并单击添加按钮。我需要做15次这种情况。

以下是我需要输入的值

data

这是下拉列表。

grades

我尝试了以下方案。

for(int x=95; x<=11; x=x-6){

            driver.findElement(By.xpath("//input[@type='number']")).sendKeys(""+x);

            for(int y=100; y<=16; y=y-6){

                driver.findElement(By.xpath("(//input[@type='number'])[2]")).sendKeys(""+y);

                for(int z=1; z<=15; z++){

                    Select mark2 = new Select(driver.findElement(By.xpath("//select[@id='gradeSelector']")));
                    mark2.selectByValue(""+z);
                    driver.findElement(By.xpath("//input[@value='Add']")).click();
                }
            }
        }

但是,没有任何反应。

提前致谢。 :)

2 个答案:

答案 0 :(得分:1)

只是for循环逻辑不正确 - x<=11条件永远不会计算为true,替换:

for(int x=95; x<=11; x=x-6) {

使用:

for(int x=95; x>=11; x=x-6) {

答案 1 :(得分:1)

请尝试以下操作:

    int x=95, y=100;
    for(int z=1; z <=15; z++){

        driver.findElement(By.xpath("//input[@type='number']")).sendKeys(""+x);
        driver.findElement(By.xpath("(//input[@type='number'])[2]")).sendKeys(""+y);
        Select mark2 = new Select(driver.findElement(By.xpath("//select[@id='gradeSelector']")));
        //mark2.selectByValue(""+z);
        mark2.selectByIndex(z);
        driver.findElement(By.xpath("//input[@value='Add']")).click();

        x=x-6;
        y=y-6;
    }