Как найти элемент в таблице, используя нумерацию страниц в Selen Web Driver с Java - PullRequest
0 голосов
/ 21 февраля 2019

Привет, я столкнулся с проблемой в моем скрипте. Мне нужно проверить, присутствует ли элемент в таблице нумерации страниц.Я пишу код ниже, но он показывает ошибку, а также цикл не работает. Может кто-нибудь помочь мне в моем сценарии?Это мой код и ошибка, которую я получаю:

// разбиение на страницы таблицы

    List<WebElement> allpages=d.findElements(By.xpath("//div[@id='reportPagination_wrapper']//a"));
    System.out.println("Total page : "+allpages.size());

    if(allpages.size()>0)
    {
        System.out.println("pagination exist");

        //click on pagination link

        for(int i=0;i<=allpages.size();i++)
        {
            if(allpages.contains(flight_no))
            {
                System.out.println("record exists");

                break;
            }

            else
            {
                System.out.println("eleenmt no");
                allpages.get(i).click();
            }
            }               
        }

        }

Вывод: Всего страниц: 13

   pagination exist

   eleenmt no
   eleenmt no

FAILED:search_basedon_flightno

Ошибка: org.openqa.selenium.StaleElementReferenceException: устаревшая ссылка на элемент: элемент не прикреплен к документу страницы (информация о сеансе: chrome = 71.0.3578.98)

1 Ответ

0 голосов
/ 21 февраля 2019

StaleElementReferenceException возникает, когда элемент больше не доступен в dom или устарел.Чтобы исправить это, вам нужно снова извлечь элементы и затем работать с ними.
Например, в вашем случае это должно быть:

List<WebElement> allpages=d.findElements(By.xpath("//div[@id='reportPagination_wrapper']//a"));
    System.out.println("Total page : "+allpages.size());

    if(allpages.size()>0)
    {
        System.out.println("pagination exist");

        //click on pagination link

        for(int i=0;i<=allpages.size();i++)
        {
            allpages=d.findElements(By.xpath("//div[@id='reportPagination_wrapper']//a"));
            if(allpages.contains(flight_no))
            {
                System.out.println("record exists");

                break;
            }

            else
            {
                System.out.println("eleenmt no");
                allpages.get(i).click();
            }
          }               
      }

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