Остановка загрузки страницы Selenium, как только появится ожидаемый элемент

java selenium

606 просмотра

2 ответа

Я создал несколько тестовых случаев на Selenium с использованием Java. К сожалению, когда я щелкаю по элементу на странице, прежде чем перейти к какому-либо другому действию, мне приходится ждать, пока страница загрузится.

Я пытался driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);. К сожалению, это создает другую проблему. Даже если страница загружается, она ждет 30 секунд, прежде чем начнет тестирование на странице.

Что я нашел лучший способ, это отправить ESCAPEключ, чтобы остановить загрузку страницы.

Могу ли я в любом случае проверить, существует ли элемент, и когда он есть, отправить ESCAPEключ в браузер, чтобы остановить загрузку страницы?

Эта часть заставляет меня задуматься, поскольку мне приходится ждать загрузки страницы, прежде чем Java прочитает следующую строку кода, поэтому я не могу отправить ESCAPEключ в браузер до тех пор, пока страница фактически не прекратит загрузку.

редактировать

Я только что попытался использовать новый поток, чтобы выполнить работу, но он, кажется driver, полностью заблокирован, не может выполнить какой-либо процесс до остановки загрузки страницы.

У меня нет идей на данный момент, но я считаю, что должен быть способ.

Использование timeouts()вызывает остановку всего теста.

Автор: Revenant Источник Размещён: 08.11.2019 11:30

Ответы (2)


2 плюса

Решение

Во-первых, я хотел бы сказать, что это не лучшая практика. Метод щелчка селена гласит, что если щелчок запускает загрузку страницы, селен будет блокировать его до тех пор, пока страница не будет загружена. Вместо того, чтобы щелкать с помощью метода click, вы можете попробовать отправить событие click через JavaScript. Затем дождитесь элемента, как обычно.

Автор: Aaron Davis Размещён: 20.08.2016 04:31

1 плюс

Вы можете попробовать driver.manage (). Timeouts (). PageLoadTimeout (10, TimeUnit.SECONDS); Предполагается выдать ошибку после истечения времени ожидания. Я никогда не использовал его, но, возможно, вы можете попытаться поймать эту ошибку и продолжить тестирование. Но ваша страница может оказаться в нестабильном состоянии, когда все не загружается и тестирование не взаимодействует с элементами.

Автор: Grasshopper Размещён: 20.08.2016 03:58
Вопросы из категории :
32x32