Selenium Java: дождитесь кликабельности

Я застрял в ситуации с ожиданием селена. Я использую Selenium Java с огурцом. При нажатии кнопки загружается новая страница, но ее содержимое еще не становится доступным для нажатия. Блокировщик серого экрана отображается, когда страница загружается на обратной стороне, чтобы сделать ее недоступной для редактирования до полной загрузки страницы. Поэтому я не мог использовать waitforpageload или ждать, пока элемент станет видимым, поскольку они оба возвращают true, поскольку элементы доступны в фоновом режиме. Я попытался использовать условие, чтобы проверить, доступны ли элементы для щелчка, чтобы убедиться, что страница загружается полностью. Но и это не сработало. Как только страница загружается на заднем плане, выполняются дальнейшие проверки, и проверка завершается ошибкой.

Я также пробовал подождать, пока не виден элемент:

public static void waitUntilTextIsInvisible(final String text, final int timeoutInSecs)
    {
        if (StringUtils.isBlank(text))
        {
            return;
        }

        try
        {
            (new WebDriverWait(_webDriver, timeoutInSecs))
                    .until(new ExpectedCondition<Boolean>()
                    {
                        @Override
                        public Boolean apply(final WebDriver d)
                        {
                            return SeleniumUtils.findElementsContainingText(text, d).size() == 0;
                        }
                    });
        }
        catch (TimeoutException e)
        {
            LOG.error("Exception on page " + _webDriver.getCurrentUrl()
                    + " waiting for text " + text + " to be visible");
            throw e;
        }
    }

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

Любые ответы будут оценены.

-Лакшми.

См .: Как мне сделать X? Ожидается, что пользователь, задающий вопрос, не только проведет исследование, чтобы ответить на свой вопрос, но и поделится этим исследованием, попытками кода и результатами. Это демонстрирует, что вы потратили время, чтобы попытаться помочь себе, избавляет нас от повторения очевидных ответов и, прежде всего, помогает вам получить более конкретный и актуальный ответ! См. Также: Как спросить

JeffC 12.10.2018 04:30

Вы также должны добавить тег для нужного языка.

JeffC 12.10.2018 04:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
498
1

Ответы 1

Вы можете приостановить браузер, когда страница загружается и появляется блокировщик серого экрана. Получите для него xpath и подождите, пока его больше не будет. Позвольте мне знать, если это помогает.

Другие вопросы по теме