У меня есть сетка на моей странице, которая была обновлена с помощью различных действий (перезагрузка, сортировка, фильтрация и т. Д.). Каждый раз, когда применяется одно из действий, перед сеткой появляется счетчик, пока данные в сетке не будут перезагружены. Появление счетчика может занять от 300 до 3000 мс, а счетчик может оставаться там несколько секунд. В тех же случаях сетка перезагружалась без счетчика, но предсказать ее появление невозможно. Есть ли способ позаботиться об ожидании этого счетчика с помощью Explicit WebDriver Wait без получения исключения NoSuchElementException?
Как дождаться выполнения счетчика сетки с Java Explicit WebDriver Wait
Ответы (2)
Используя Firebug, проверьте атрибуты счетчика. В большинстве случаев у них есть атрибут ширины / высоты. Вы можете получить значение атрибута, когда счетчик отображается, а не отображается. Затем вы можете написать логику, ожидающую, пока атрибут не получит не отображаемое значение.
Сначала вы ждете, пока появится счетчик, затем вы ждете, пока он исчезнет.
При первом ожидании вы даете ему короткий тайм-аут (может быть, 2 секунды, может быть, 10), но не генерируете никаких исключений, если он истекает. Просто двигайтесь дальше (поскольку это, вероятно, означает, что счетчик появлялся и исчезал быстрее, чем селен мог его обнаружить).
Затем во втором ожидании дайте ему более длительный тайм-аут и вызовите исключение, если счетчик все еще присутствует в конце.