Сделайте съемку страницы с помощью веб-драйвера Selenium

Вопрос и ответы на странице «Снимок экрана с Selenium WebDriver» содержат превосходное описание того, как снимать снимок с помощью Selenium Web Driver на разных языках.

Я управляю своим Web-драйвером с помощью Python и C # и с набором различных драйверов браузера.

Например, если снимок сделан с помощью браузера PhantomJS без браузера с Python, я получаю полный снимок страницы.

В скриншоте C # напрямую не предоставляется как метод драйвера, поэтому требуется немного кода (см. Вышеупомянутый вопрос и предлагаемое решение C #).

Тем не менее, рецепт C #, хотя и отлично работает с снимком экрана, не то, что я ищу.

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

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

One Solution collect form web for “Сделайте съемку страницы с помощью веб-драйвера Selenium”

Скриншоты в текущем WebDriver API определяются как полноэкранные снимки экрана. Когда вы делаете скриншот через WebDriver, вы должны получать их на полной странице, независимо от того, какой язык вы используете (Python, C #, Java и т. Д.). Сказав это, есть некоторые замечания.

Для IE-драйвера, если вы запускаете 64-разрядную Windows и используете 32-разрядный IEDriverServer.exe , вы увидите, что ваши скриншоты урезаны до максимального размера разрешения экрана системы, причем любое переполнение как черные части изображение. Это связано с ограничениями процедур перехвата Windows, которые используются для того, чтобы позволить IE-драйверу создавать полноэкранные снимки экрана. Более подробную информацию можно найти в сообщении в блоге автором драйвера IE.

Драйвер для Chrome предоставляет только скриншоты видимого порта просмотра . Это известная проблема с драйвером, и он был на некоторое время и не может быть исправлен из-за основной ошибки в самом браузере Chrome .

Архитектура драйвера Safari не позволяет выполнять скриншоты с полным DOM. Из-за ограниченного характера точек расширения, предоставляемых браузером Safari, маловероятно, что это изменится.

Наконец, все это обсуждение скриншотов относится только к текущим реализациям WebDriver. Рабочая группа W3C, создающая спецификацию WebDriver , решила, что скриншоты должны быть только видимого порта представления , поэтому это поведение, скорее всего, изменится в будущем и позволит разрешать скриншоты порта представления.

  • Ошибка Selenium Webdriver: «Невозможно загрузить профиль»
  • Python Selenium Alert - запрашивать имя пользователя и пароль не работает
  • Селен и iframe в html
  • Веб-страница уже открыта (в исходном формате); просто нужно прочитать этот текст, используя Selenium
  • Поддержка Chrome 59 для базовых учетных данных в URL-адресах, альтернативных для использования с Chromedriver?
  • Не удалось щелкнуть ссылку, используя selenium webdriver в python
  • Как просмотреть весь сайт с помощью селена?
  • Python HTMLTestRunner не создает отчет
  • Как найти_element_by_link_text при наличии: Исключение NoSuchElement?
  • Как правильно использовать Selenium
  • Ошибка «Недопустимые значения локатора, переданные в», если мы используем find_element вместо find_element_by
  •  
    Interesting Posts for Van-Lav

    Как извлечь общие слова перед определенным символом и найти конкретное слово

    Python Terminated Thread не может перезагрузиться

    UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0xa5 в позиции 0: недопустимый стартовый байт

    как объединить django plus gevent основы?

    Цвет линии 3D-параметрической кривой в matplotlib.pyplot на python

    Ошибка изображения Docker: "/ bin / sh: 1: [python ,: not found"

    Поворот осей на этикетке текста в 3D matplotlib

    Python: jQuery-подобная цепочка функций?

    строка в datetime с дробными секундами, в Google App Engine

    Удаление дубликатов с использованием пользовательских сравнений

    Обнаружение кромок питона и расчет кривизны

    Django проверить, существует ли связанный объект с ошибкой: RelatedObjectDoesNotExist

    Как движок приложения (python) управляет памятью по запросам (предел превышен лимитированной частной памяти)

    Изменения папки дорожки / изменения Dropbox

    Как выполнить запрос на основе даты и времени с использованием SQLite в Python?

    Python - лучший язык программирования в мире.