#python #selenium
#python #selenium
Вопрос:
Я пытаюсь прокрутить страницу вниз, как я обычно делаю. Но на этом веб-сайте, похоже, это не работает. Это одна из тех ситуаций, когда вам нужно прокручивать до самого низа, чтобы загрузить новые ссылки.
Это команда, которую я использую:
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Ошибка, которую я получаю, заключается в:
Traceback (most recent call last):
File "/somePathTo/someProgram.py", line 12, in <module>
browser.execute_script("window.scrollTo(0,document.body.scrollHeight);")
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 636, in execute_script
'args': converted_args})['value']
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Cannot read property 'offsetTop' of null
(Session info: chrome=73.0.3683.86)
(Driver info: chromedriver=72.0.3626.69 (3c16f8a135abc0d4da2dff33804db79b849a7c38),platform=Mac OS X 10.14.3 x86_64)
Любая другая прокрутка также не работает, что-то не так со скриптом JS…
Я не знаю, какой элемент равен null и, следовательно, не может иметь свойства ‘offsetTop’… возможно, мне следует определить какой-нибудь элемент, который может обладать этим свойством, но я знаю о JS не намного больше, чем этот скрипт
РЕДАКТИРОВАТЬ: я решил свою конкретную проблему с помощью этого кода
browser.execute_script('arguments[0].scrollIntoView(true);', target)
где target — элемент в нижней части. Однако я хотел бы знать, в чем проблема с JS-кодом.
Комментарии:
1. в чем именно заключается ваш вопрос?
2. Я хотел бы успешно выполнить прокрутку до нижней части страницы. Это проясняет?
3. Найдите элемент внизу страницы (например, элемент нижнего колонтитула) и используйте
driver.find_element_by_xpath("xpath_goes_here").location_once_scrolled_into_view
. Это приведет к прокрутке до этого элемента нижнего колонтитула.4. Можете ли вы поделиться ссылкой на веб-сайт?
5. да, предположим, мне удалось сделать это вот так