Сделайте съемку страницы с помощью веб-драйвера 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 , решила, что скриншоты должны быть только видимого порта представления , поэтому это поведение, скорее всего, изменится в будущем и позволит разрешать скриншоты порта представления.

  • Как подражать Firefox «Сохранить файл» -> ОК в Python
  • Selenium Webdriver, скриншот как массив numpy (Python)
  • Как запустить Selenium Scripts в веб-серверах?
  • Python, Selenium, загружать все типы MIME
  • Как правильно использовать find_element_by_link_text (), чтобы не поднимать NoSuchElementException?
  • Неисправность нажатием кнопки для следующей страницы
  • Выполните проверку WebDriverWait () или аналогичную проверку регулярного выражения в Python
  • Selenium WebDriver (2.25) Тайм-аут не работает
  • Python - лучший язык программирования в мире.