Селен

Как сделать снимок экрана с помощью Selenium

Как сделать снимок экрана с помощью Selenium
Selenium - отличный инструмент для тестирования браузеров, веб-автоматизации и парсинга веб-страниц. Вы также можете использовать Selenium для создания снимков экрана своей веб-страницы. Это очень важно для тестирования пользовательского интерфейса (UI) вашего сайта в разных браузерах.

Разные веб-браузеры используют разные механизмы визуализации для отображения веб-страниц. Таким образом, один и тот же код внешнего интерфейса может не отображаться одинаково во всех веб-браузерах. Чтобы решить эту проблему, вам может потребоваться добавить на свой веб-сайт некоторые коды внешнего интерфейса для конкретного браузера. Однако это не единственная сложная часть при разработке веб-сайта, совместимого с различными браузерами и устройствами. Проверка того, как сайт выглядит в каждом из ваших целевых браузеров вручную, может занять много времени. Вам нужно будет открыть все целевые веб-браузеры, посетить веб-страницу, дождаться загрузки страницы и сравнить обработанные страницы друг с другом. Чтобы сэкономить время, вы можете использовать функцию скриншотов Selenium, чтобы автоматически делать скриншоты вашего веб-сайта в каждом из ваших целевых браузеров и самостоятельно сравнивать изображения. Это намного быстрее, чем ручной метод. Эта статья покажет вам, как делать скриншоты окон браузера с помощью Selenium.

Предпосылки

Чтобы опробовать команды и примеры, обсуждаемые в этой статье, у вас должны быть:

1) Дистрибутив Linux (желательно Ubuntu), установленный на вашем компьютере.
2) Python 3 установлен на вашем компьютере.
3) PIP 3 установлен на вашем компьютере.
4) Пакет Python virtualenv установлен на вашем компьютере.
5) Веб-браузеры Mozilla Firefox и Google Chrome, установленные на вашем компьютере.
6) Знание того, как установить драйвер Firefox Gecko и веб-драйвер Chrome в вашей системе.

Чтобы выполнить требования 4, 5 и 6, вы можете прочитать мою статью Введение в Selenium с Python 3 в Linuxhint.ком.

Вы можете найти много других статей по нужным темам на LinuxHint.ком. Обязательно ознакомьтесь с этими статьями, если вам понадобится дополнительная помощь.

Настройка каталога проекта

Чтобы все было организовано, создайте новый каталог проекта селен-скриншот /, следующим образом:

$ mkdir -pv selenium-screenshot / изображения, драйверы

Перейдите к селен-скриншот / каталог проекта, как показано ниже:

$ cd selenium-screenshot /

Создайте виртуальную среду Python в каталоге проекта, как показано ниже:

$ virtualenv .Venv

Активируйте виртуальную среду следующим образом:

$ источник .Venv / bin / активировать

Установите Selenium с помощью PIP3 следующим образом:

$ pip3 установить селен

Загрузите и установите необходимый веб-драйвер в драйверы / каталог проекта. Я объяснил процесс загрузки и установки веб-драйверов в статье Введение в Selenium с Python 3. Если вам нужна помощь по этому поводу, ищите LinuxHint.ком для этой статьи.

Основы создания снимков экрана с помощью Selenium

В этом разделе вы найдете очень простой пример создания снимков экрана браузера с помощью Selenium.

Сначала создайте новый скрипт Python ex01_google-chrome.ру и введите следующие строки кода в скрипт.

из selenium import webdriver
из селена.webdriver.общий.ключи импорт Ключи
googleChromeOptions = webdriver.хром.параметры.Параметры()
googleChromeOptions.headless = Правда
googleChromeOptions.add_argument ('- размер окна = 1280,720')
googleChrome = webdriver.Chrome (исполняемый_путь = "./ drivers / chromedriver ",
options = googleChromeOptions)
pageUrl = "https: // www.w3schools.com ";
Гугл Хром.получить (pageUrl)
Гугл Хром.save_screenshot ('images / w3schools_google-chrome.png ')
Гугл Хром.Закрыть()

Как только вы закончите, сохраните ex01_google-chrome.ру Скрипт Python.

Строка 4 создает Параметры объект для веб-браузера Google Chrome.

Строка 5 включает безголовый режим для Google Chrome.

Строка 6 устанавливает размер окна 1280 × 720 пикселей.

Строка 8 создает объект браузера с помощью драйвера Chrome и сохраняет его в Гугл Хром Переменная.

Строка 10 определяет pageUrl Переменная. В pageUrl переменная содержит URL-адрес веб-страницы, скриншот которой Selenium сделает.

Строка 11 загружает pageUrl в браузере.

В строке 12 используется save_screenshot () метод сохранения скриншота окна браузера в файл w3schools_google-chrome.PNG в изображений/ каталог проекта.

Наконец, строка 14 закрывает браузер.

Затем запустите ex01_google-chrome.ру Скрипт Python, как показано ниже:

$ python3 ex01_google-chrome.ру

При успешном выполнении скрипта скриншот будет сохранен в файл изображения w3schools_google-chrome.PNG в изображений/ каталог проекта, как вы можете видеть на скриншоте ниже.

Чтобы сделать снимок экрана того же веб-сайта, но в веб-браузере Firefox, создайте новый скрипт Python ex01_firefox.ру и введите в скрипт следующие строки кодов.

из selenium import webdriver
из селена.webdriver.общий.ключи импорт Ключи
firefoxOptions = webdriver.Fire Fox.параметры.Параметры()
firefoxOptions.headless = Правда
firefoxOptions.add_argument ('- ширина = 1280')
firefoxOptions.add_argument ('- высота = 720')
firefox = webdriver.Firefox (исполняемый_путь = "./ drivers / geckodriver ", options = firefoxOptions)
pageUrl = "https: // www.w3schools.com ";
Fire Fox.получить (pageUrl)
Fire Fox.save_screenshot ('images / w3schools_firefox.png ')
Fire Fox.Закрыть()

Как только вы закончите, сохраните ex01_firefox.ру Скрипт Python.

Строка 4 создает Параметры объект для веб-браузера Firefox.

Строка 5 включает безголовый режим для Firefox.

Строка 6 устанавливает ширину окна браузера на 1280 пикселей, а строка 7 устанавливает высоту окна браузера на 720 пикселей.

Строка 9 создает объект браузера с помощью драйвера Firefox Gecko и сохраняет его в Fire Fox Переменная.

Строка 11 определяет pageUrl Переменная. В pageUrl переменная содержит URL-адрес веб-страницы, снимок экрана которой будет сделан Selenium.

Строка 13 загружает pageUrl в браузере.

В строке 14 используется save_screenshot () метод сохранения скриншота окна браузера в файл w3schools_firefox.PNG в изображений/ каталог проекта.

Наконец, строка 15 закрывает браузер.

Затем запустите ex01_firefox.ру Скрипт Python, как показано ниже:

$ python3 ex01_firefox.ру

При успешном выполнении скрипта снимок экрана должен быть сохранен в файл изображения w3schools_firefox.PNG в изображений/ каталог проекта, как вы можете видеть на скриншоте ниже.

Создание скриншотов с разным разрешением экрана

В этом разделе показано, как делать скриншоты одной и той же веб-страницы при разных разрешениях экрана. В этом разделе я буду использовать веб-браузер Google Chrome, но вы можете использовать Firefox или любой другой браузер для этого раздела.

Сначала создайте новый скрипт Python ex02.ру и введите следующие строки кода в скрипт.

из selenium import webdriver
из селена.webdriver.общий.ключи импорт Ключи
pageUrl = "https: // www.w3schools.com / ";
разрешения = ['320,1080', '500,1080', '720,1080', '1366,1080', '1920,1080']
для разрешения в разрешениях:
print ("Снимок экрана с разрешением% s…"% (разрешение.replace (',', 'x')))
chromeOptions = webdriver.ChromeOptions ()
chromeOptions.headless = Правда
chromeOptions.add_argument ('- размер окна =' + разрешение)
chrome = webdriver.Chrome (исполняемый_путь = "./ drivers / chromedriver ", options = chromeOptions)
хром.получить (pageUrl)
outputImage = 'images / homepage_chrome_' + разрешение.заменить (',', '_') + '.png '
хром.save_screenshot (outputImage)
хром.Закрыть()
print ('Сохранено в% s.'% (outputImage))

Как только вы закончите, сохраните ex02.ру Скрипт Python.

Строка 4 определяет pageUrl переменная, содержащая URL-адрес веб-страницы, с которой я хотел бы сделать снимки экрана в разных разрешениях экрана.

Строка 5 определяет резолюции список, содержащий список разрешений, для которых я хотел бы сделать скриншоты.

Строка 7 проходит по каждому из разрешающая способностьс в резолюции список.

Внутри цикла строка 8 выводит на консоль значимое сообщение.

Строки 10-15 создают объект браузера с разрешающая способность текущей итерации цикла и сохраняет его в хром Переменная.

Строка 17 загружает pageUrl в браузере.

Строка 19 генерирует путь к изображению, где будет сохранен снимок экрана, и сохраняет изображение в outputImage Переменная.

Строка 20 делает снимок экрана окна браузера и сохраняет его в пути outputImage.

Строка 21 закрывает браузер.

Строка 22 выводит на консоль содержательное сообщение и завершает цикл.

Затем цикл начинается снова со следующим разрешением экрана (i.е., следующий пункт списка).

Затем запустите ex02.ру Скрипт Python, как показано ниже:

$ python3 ex02.ру

Скрипт Python ex02.ру должен делать скриншоты данного URL в каждом из выбранных разрешений экрана.

Снимок экрана w3schools.ком в ширину 320 пикселей.

Скриншот w3schools.ком шириной 500 пикселей.

Снимок экрана w3schools.ком в ширину 720 пикселей.

Снимок экрана w3schools.ком в ширину 1366 пикселей.

Снимок экрана w3schools.ком в ширину 1920 пикселей.

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

Заключение

В этой статье показаны некоторые основы создания снимков экрана с помощью Selenium и веб-драйверов Chrome и Firefox. В статье также было показано, как делать скриншоты в разных разрешениях экрана. Это должно помочь вам начать работу с функцией скриншота Selenium.

Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...
10 лучших игр для Ubuntu
Платформа Windows была одной из доминирующих платформ для игр из-за огромного процента игр, которые разрабатываются сегодня с встроенной поддержкой Wi...
5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...