Относительно выполнения некоторых действий, основанных на согласованном условии в цикле for в селене - PullRequest
0 голосов
/ 11 июня 2018

Я хочу сопоставить RFQ Нет, переданное в строке с некоторыми данными в таблице, и когда это совпадает с определенной строкой, я хочу нажать кнопку в этой соответствующей строке, но в каком-то другом столбце

Но код выдает ошибку

Код:

    String baseUrl = "https://test.transporteg.com/";
    driver.get(baseUrl);
    driver.findElement(By.xpath("//*[@id=\"j_idt12:email\"]")).sendKeys("kevin@openspaceservices.com");
    driver.findElement(By.xpath("//*[@id=\"j_idt12:password\"]")).sendKeys("Eg123");
    driver.findElement(By.xpath("//*[@id=\"j_idt12:j_idt19\"]")).click();
    driver.findElement(By.linkText("Dashboard Provider")).click();
    driver.findElement(By.xpath("//*[@id=\"rfqViewId:j_idt248_data\"]/tr/td[5]/div[1]/input")).click();

    WebElement Webtable = driver.findElement(By.xpath("//*[@id=\"table-1\"]/tbody/tr[1]/td[1]"));
    List<WebElement> allElements = Webtable.findElements(By.xpath("//*[@id=\"table-1\"]/tbody/tr/td[1]"));
    System.out.println("Reached Here 1");

    System.out.println("No. of Rows in the WebTable: " + allElements.size());
    String[] RFQ_NO = {"6291/91/06/18"};

    System.out.println("Reached Here 8");
    System.out.println("All emelements count "+allElements.size());
    for (WebElement we : allElements) {
        for (int i = 0; i <= allElements.size(); i++) 
        {
            System.out.println("For loop Count"+i);
            if (we.getText().equals(RFQ_NO[i])) {
                 System.out.println("Matched at Row"+(i));

                    driver.findElement(By.xpath("//*[@id=\"table-1\"]/tbody/tr[" + (i + 1) + "]/td[7]/a/img"))
                            .click();
                    // *[@id="table-1"]/tbody/tr[2]/td[7]/a/img

            } else {
                System.out.println("Not Matched");
            }
        }
    }

}

}

Ошибка:

Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 1 в ListPackage.List_Class.main (List_Class.java:86)

Не могли бы вы помочь.

1 Ответ

0 голосов
/ 11 июня 2018

Ошибка «java.lang.ArrayIndexOutOfBoundsException: 1» означает, что вы пытаетесь получить доступ к индексу массива, который не существует.

Глядя на код, ошибка возникает из-за строки условия цикла for:

for (int i = 0; i <= allElements.size(); i++) 

Правильная замена вышеприведенного условия петли должна быть следующей:

for (int i = 0; i < allElements.size(); i++)

т.е. заменить i <= allElements.size() на i < allElements.size()

Для получения дополнительной информации см.ссылка: ArrayIndexOutOfBoundsException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...