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

Фотография

selenium + java. Ожидание загрузки.


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

#1 Choson

Choson

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Игорь

Отправлено 21 мая 2021 - 12:57

На странице имеется 2 таблицы и кнопка "Фильтр". Первая таблица с данными. Вторая таблица - получает данные (фильтрованные) из первой при нажатии на кнопку "Фильтр".

При открытии страницы, я ожидаю появления данных в первой таблице (текст "RUR" - есть в ожидаемых данных).

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[text()='RUR']")));

 

Нажимаю на кнопку "Фильтр" и должен дождаться загрузки данных во вторую таблицу. Можно ли это реализовать стандартным методом selenium? или только свой писать?

 

 


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 21 мая 2021 - 16:31

Скорее всего, можно. А в чем собственно проблема? Почему не использовать тот же подход для второй таблицы, возможно изменив условие?


  • 0

#3 Choson

Choson

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Игорь

Отправлено 24 мая 2021 - 08:04

Данные во второй таблице такие же как и в первой. Поэтому не получится поменять просто текст ожидания для решения данной задачи.

Сейчас пользуюсь Кастомным методом ожидания, который ждет появление текста во второй таблице. Но может я его зря написал, и есть стандартный метод селениума, где можно задать вэб элемент в котором нужно ждать появление ожидаемого текста?

 

Скорее всего, можно. А в чем собственно проблема? Почему не использовать тот же подход для второй таблицы, возможно изменив условие?


  • 0

#4 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 24 мая 2021 - 09:25

Для этого во втором ожидании нужно просто поменять локатор на что-то вида

By.xpath("//table[2][text()='RUR']"))

  • 0

#5 Choson

Choson

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Игорь

Отправлено 24 мая 2021 - 10:27

 

Для этого во втором ожидании нужно просто поменять локатор на что-то вида

By.xpath("//table[2][text()='RUR']"))

Вопрос немного в другом: table2 - как WebElement.

Как мне кажется решение: wait.until(ExpectedConditions.textToBePresentInElement(table2, "RUR"));

Пропустил этот метод в списке, когда искал в стандартных методах.

Спасибо за участие!


  • 0

#6 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 24 мая 2021 - 11:06

Я собственно так и написал "во втором ожидании". А что вы будете использовать visibilityOfElementLocated, textToBePresentInElement или еще что-то, это уже вам решать  :smile:


  • 0


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

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