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

Фотография

Ожидание обновления данных в таблице Selenium

Selenium Java testing

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

#1 rocket1989

rocket1989

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Деревянко Юрий

Отправлено 17 августа 2018 - 09:28

Добрый день!

 

Возникла проблема при решении следующей задачи: 

Открываю веб страницу на которой представлена таблица. Таблица содержит динамические данные .
Мне необходимо заполнить фильтры, нажать на кнопку Search. 
Данные в таблице обновятся и мне нужно выбрать первую строку и проверить ее. 

 

Сейчас после нажатия на кнопку Search  я использую команду ожидания: Thread.sleep(30000); 
время ожидания может быть разным: 0.5 - 30 секунд

Я прочитал что это плохая практика использовать Thread.sleep
 

Не могли бы вы предложить другой вариант ожидания? 

Спасибо


  • 0

#2 MissLeman

MissLeman

    Постоянный участник

  • Members
  • PipPipPip
  • 152 сообщений


Отправлено 17 августа 2018 - 10:00

ну логично написать какую-то ждалку, ожидающую конца обновления. поищите на UI что-то, означающее окончание обновления. Может, у вас там что-то подкрашивается, или скрывается лоадинг, или на худой конец можно написать по логике "жди, покуда в таблице не станет 4 строки", если по вашим фильтрам должно получиться именно 4.


  • 0

#3 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 17 августа 2018 - 12:40

Если вы знаете, что после фильтрации у вас появится определенный текст в первой строке, то можно использовать что-то типа такого:

DriverManager.Driver.Wait().Until(() =>
                    {
                        var rowData = _table.RowColumnsCells(w => w.RowNum == 1);
                        return rowData.Row.GetValue().Contains(expectedText);
                    });

В общем, вам надо написать функцию, которая будет постоянно искать элемент - первую строку в таблице. А потом смотреть на её текст, содержит ли она то, что вы ищете. 

Если содержит - значит фильтры применились и таблица обновилась. 


  • 0

#4 rocket1989

rocket1989

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Деревянко Юрий

Отправлено 17 августа 2018 - 14:32

Спасибо) Попробую 


  • 0

#5 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 17 августа 2018 - 19:45

варианты когда вариант "ожидания первой строки после фильтрации" сработает неправильно, и тест запасится несмотря на то что фильтры работают неправильно:

1. фильтр вообще не работает, а первая строка в таблице и была которую мы ожидаем

2. фильтр вместо одной строки выдаст больше, причем искомую строку выдаст первой

 

как не зафейлить:

1. после применения фильтра ждать пока будет отображаться только одна строка, а вторая отображаться не будет

2. проверить что эта первая строка и есть искомая


  • 0

#6 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 18 августа 2018 - 05:22

Это если надо фильтр проверить. :)
  • 0



Темы с аналогичным тегами Selenium, Java, testing

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

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