Я использую Selenium Webdriver для получения содержимого веб-страницы. Страница загружает больше контента, когда пользователь прокручивает страницу вниз с помощью AJAX. Я могу прокручивать вниз с помощью javascript, но не знаю, когда остановить прокрутку. Как я узнаю, что больше не могу прокручивать вниз? Я не могу использовать document.clientheight или любое из свойств высоты, потому что они имеют дело с прокруткой, когда окно слишком маленькое, но все элементы привязаны к DOM, и поэтому их высота известна. Здесь элементы динамически прикрепляются к DOM, поэтому высота заранее неизвестна.
Как я узнаю, что достиг дна? Есть ли где-нибудь условие «полоса прокрутки не прокручивается»? Или это также сработает, если загружается больше контента, а полоса прокрутки еще недоступна для прокрутки, но скоро будет?
Спасибо, бсг
Обновлять
Ответ, который сработал для меня, на самом деле был дан на другой мой вопрос (этот вопрос был более точным подмножеством того). А именно, используйте jquery для проверки следующей эквивалентности: $(document).height() == ($(window).height() + $(window).scrollTop();. Если он оценивается как true, вы достигли внизу страницы. (Объяснение того, почему это работает, см. в Значение $(window).scrollTop() == $(document).height() - $(window).height()) Я не уверен, что это будет работать без jquery, поэтому, если страница вы тестируете, у вас нет jquery, вам, вероятно, следует использовать ответ пользователя 1177636 ниже.
Точный код, который я использовал, был:
JavascriptExecutor js = (JavascriptExecutor)driver;
do{
//scroll down and do whatever processing you need
reachedbottom = Boolean.parseBoolean(js.executeScript("return $(document).height() == ($(window).height() + $(window).scrollTop());").toString());
}while(!reachedbottom);
Надеюсь, это поможет кому-то.
readyState=complete? - person Yi Zeng   schedule 14.07.2013