Есть таблица с номерами приложений и пользовательскими данными. в начале таблицы номер заявки в конце - зеленая стрелка. В таблице может быть бесконечное количество полей, и оно всегда меняется. Мне нужно найти зеленую стрелку рядом с номером приложения и соответственно щелкнуть по ней.
пытался сделать что-то вроде
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+ Первая проблема в том, что я действительно не нравится вариант писать если еще 100 раз. И есть только один ди git в диве, где id приложения и один в ди git в диве, где зеленая стрелка другая (img)
Вторая проблема в том, что нет независимо от того, как я вставляю разрыв; при нахождении нужного приложения он нажимает на желаемую стрелку, но после очевидной попытки продолжить поиск на странице, но страница уже изменилась, и ошибка падает
(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;
}
Но если элемент находится, то он нажимает на самую первую стрелку в таблице, а не на стрелку в том же столбце, что и номер заявки
Буду очень признателен за вашу помощь!