java selenium как использовать if else

Есть таблица с номерами заявок и пользовательскими данными. в начале таблицы номер заявки в конце зеленая стрелочка. Полей в таблицы может быть бесконечное количество и она всегда меняется. Мне нужно по номеру заявки найти зеленую стрелочку и на нее соответственно нажать.

пытался сделать что-то вроде

String myorder = "629/0000/000000021059";


    if (myorder.equalsIgnoreCase(driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div/div[1]/table/tbody/tr/td[5]\n")).getText())){
        driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div[1]/div[1]/table/tbody/tr/td[18]/a/img\n")).click();

    }  if (myorder.equalsIgnoreCase(driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div[1]/div[2]/table/tbody/tr/td[5]\n")).getText())) {
        driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div[1]/div[2]/table/tbody/tr/td[18]/a/img\n")).click();

    } if (myorder.equalsIgnoreCase(driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div[1]/div[3]/table/tbody/tr/td[5]\n")).getText())) {
        driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div[1]/div[3]/table/tbody/tr/td[18]/a/img\n")).click();

и так далее до 100+ Первая проблема в том что мне ужасно не нравится вариант, писать if else 100 раз. А отличается там только одна цифра в диве где id заявки и одна в цифра в диве где зеленая стрелочка(img)

Вторая проблема в том, что как бы я не вставлял break; при нахождении нужной заявки, на нужную стрелочку он нажимает, но после видимо пытается продолжить поиск по странице, но странице уже изменилась и падает ошибка

(WARNING: The server did not provide any stacktrace information)

если я использую код который приложил выше или просто указание на элемент(который идет сразу после того, который оказался верным и страница изменилась) с пометкой что не может его найти, если я использую else if с break;

пытался сделать так

for (int i = 1; i < 25; i++) {
        String myorder = "629/6300/000000412067";

        if (myorder.equalsIgnoreCase(driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div[1]/div["+ i++ +"]/table/tbody/tr/td[5]\n")).getText())) {
            driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td[2]/div[2]/div/div[2]/div[2]/div/div/div/div[1]/div["+ i++ +"]/table/tbody/tr/td[18]/a/img\n")).click();
            break;
        }

Но если элемент находится, то жмет он на самую первую стрелочку в таблице, а не в ту что стоит в той же колонке, что и номер заявки

Буду очень признателен за помощь!


Ответы (0 шт):