Перейти к содержимому

Тестирование REST API
онлайн, начало 6 апреля
Школа для начинающих тестировщиков
онлайн, начало 9 апреля
Автоматизация функционального тестирования
онлайн, начало 10 апреля
Английский для тестировщиков
онлайн, начало 13 апреля
Фотография

Selenium не на ходит список элементов

visibilityOfAllElementsLocate

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Serjant6993

Serjant6993

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 05 Март 2020 - 06:30

Доброго времени суток. В общем как следует из названия не могу найти список элементов. Опишу ситуацию: есть страница, на которой есть поле для ввода ID, кнопка "Показать"(условие введённое ID). Ниже расположена таблица со списком. Одним из столбцов является ID, интересующий столбец содержит иконку, нажав на которую переходим на страницу, где есть подробное описание элемента таблицы. Так вот, я ввожу ID в поле, нажимаю на кнопку "Показать". Таблица перерисовывается и имеет теперь нужный мне элемент. Для того чтобы найти его я нахожу сначала список элементов этого столбца, имеющие класс=xfl p_AFIconOnly p_AFLeading. Далее в этом списке ищу нужный элемент с title="К списку строк". Искать по id не вариант он меняется.

    public WebElement getFirstIconLastColumn(){
        try{
            log.debug("getFirstIconLastColumn-> ищу первую из всех активных иконок последнего столбца");
            
            List<WebElement> list = (new WebDriverWait(driver, 20))
            .until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.className("xfl p_AFIconOnly p_AFLeading")));
        
            for(WebElement element:list){
                if(element.getAttribute("title").equals("К списку строк") && element.isEnabled())
                        return element;
            }
            log.error("Не нашёл(TabOrders->getFirstIconLastColumn)");
            return null;
        }catch(Exception e){log.error("Не нашёл(TabOrders->getFirstIconLastColumn)\n{}", e.getMessage());return null;}    
    } 

Selenium ругается:

Timed out after 20 seconds waiting for visibility of all elements located by By.className: xfl p_AFIconOnly p_AFLeading
// Причём даже если искать по существованию
Timed out after 20 seconds waiting for presence of any elements located by By.className: xfl p_AFIconOnly p_AFLeading

Код кнопки:

<div id="r1:0:rC:1:rO:1:qryId1:_search" title="" class="xfl p_AFTextOnly p_AFActionDisabled" _afrgrp="0" role="presentation">
  <a href="#" onclick="this.focus();return false" data-afr-fcs="true" class="xfn" role="button">
      <span class="xfv">Показать</span>
   </a>
</div>

Не пойму почему не находит. Ищет по старому DOM, а после нажатия на кнопку смотрит на не совпадение с новыми свойствами? Тогда почему presence не работает? Походу обращается к DOM до нажатия на кнопку "Показать". Тогда, как я понимаю,  нужно создавать новый экземпляр страницы. Но как взять driver для новой страницы? Просто вернуть WebDriver не помогает. Версия Selenium 2.52


  • 0

#2 Serjant6993

Serjant6993

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 12 Март 2020 - 13:34

Решил речез stalenessOf


  • 1


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале