Różne przeglądarki internetowe używają różnych silników renderowania do renderowania stron internetowych. Tak więc ten sam kod frontu może nie renderować w ten sam sposób we wszystkich przeglądarkach internetowych. Aby rozwiązać ten problem, może być konieczne dodanie niektórych kodów frontendowych specyficznych dla przeglądarki. Jednak nie jest to jedyna trudna część podczas projektowania witryny kompatybilnej z różnymi przeglądarkami i urządzeniami. Ręczne sprawdzenie, jak wygląda strona internetowa w każdej z twoich docelowych przeglądarki, może być czasochłonne. Musiałbyś otworzyć wszystkie ukierunkowane przeglądarki, odwiedzić stronę internetową, poczekać, aż strona się załaduje i porównać renderowane strony ze sobą. Aby zaoszczędzić czas, możesz użyć funkcji zrzutu ekranu selenium, aby automatycznie robić zrzuty ekranu witryny w każdej z twoich docelowych przeglądarki i samodzielnie porównać zdjęcia. To jest znacznie szybsze niż metoda ręczna. W tym artykule pokaże, jak robić zrzuty ekranu okien przeglądarki za pomocą selenu.
Wymagania wstępne
Aby wypróbować polecenia i przykłady omówione w tym artykule, musisz mieć:
1) Dystrybucja Linux (najlepiej Ubuntu) zainstalowana na komputerze.
2) Python 3 zainstalowany na komputerze.
3) PIP 3 zainstalowany na komputerze.
4) Pakiet Python Virtualenv Zainstalowane na komputerze.
5) Przeglądarki internetowe Mozilla Firefox i Google Chrome zainstalowane na komputerze.
6) Wiedza o tym, jak zainstalować sterownik Gecko Firefox i Chrome Web Sterownik w systemie.
Aby spełnić wymagania 4, 5 i 6, możesz przeczytać mój artykuł Wprowadzenie do selenu z Python 3 w Linuxhint.com.
W Linuxhint można znaleźć wiele innych artykułów na wymagane tematy.com. Pamiętaj, aby sprawdzić te artykuły, jeśli potrzebujesz dodatkowej pomocy.
Konfigurowanie katalogu projektów
Aby wszystko się zorganizowano, stwórz nowy katalog projektu selen-screenshot/, następująco:
$ mkdir -pv selenum -screenshot/Images, Drivers
Przejść do selen-screenshot/ Katalog projektu, w następujący sposób:
$ cd selenum-screenshot/
Utwórz wirtualne środowisko Pythona w katalogu projektu, jak następuje:
$ Virtualenv .Venv
Aktywuj środowisko wirtualne, w następujący sposób:
$ źródło .venv/bin/aktywuj
Zainstaluj selen za pomocą PIP3, w następujący sposób:
$ PIP3 instaluj selenPobierz i zainstaluj wymagany sterownik internetowy w kierowcy/ Katalog projektu. Wyjaśniłem proces pobierania i instalowania sterowników internetowych w artykule Wprowadzenie do selenu z Python 3. Jeśli potrzebujesz pomocy na ten temat, wyszukaj Linuxhint.com do tego artykułu.
Podstawy robienia zrzutów ekranu z selenem
Ta sekcja poda bardzo prosty przykład przyjmowania zrzutów ekranu przeglądarki z selenem.
Najpierw stwórz nowy skrypt Python ex01_google-chrome.py i wpisz następujące wiersze kodów w skrypcie.
od selenu importu WebdriverPo zakończeniu zapisz ex01_google-chrome.py Skrypt Pythona.
Linia 4 tworzy Opcje Obiekt przeglądarki internetowej Google Chrome.
Linia 5 umożliwia tryb bezgłowy dla Google Chrome.
Linia 6 ustawia rozmiar okna na 1280 × 720 pikseli.
Wiersz 8 tworzy obiekt przeglądarki za pomocą Chrome Driver i przechowuje go w Googlechrome zmienny.
Linia 10 definiuje a Strona URL zmienny. Strona URL Zmienna przechowuje adres URL strony internetowej, że Selenium będzie zrzut ekranu.
Linia 11 ładuje Strona URL W przeglądarce.
Linia 12 używa save_screenshot () metoda zapisania zrzutu ekranu okna przeglądarki na pliku W3schools_google-chrome.png w obrazy/ Katalog projektu.
Wreszcie linia 14 zamyka przeglądarkę.
Następnie uruchom ex01_google-chrome.py Skrypt Pythona, w następujący sposób:
$ Python3 ex01_google-chrome.pyPo pomyślnym wykonaniu skryptu zrzut ekranu zostanie zapisany w pliku obrazu W3schools_google-chrome.png w obrazy/ katalog projektu, jak widać na zrzucie ekranu poniżej.
Aby zrobić zrzut ekranu tej samej witryny, ale w przeglądarce internetowej Firefox, utwórz nowy skrypt Python ex01_firefox.py i wpisz następujące wiersze kodów w skrypcie.
od selenu importu WebdriverPo zakończeniu zapisz ex01_firefox.py Skrypt Pythona.
Linia 4 tworzy Opcje obiekt dla przeglądarki internetowej Firefox.
Linia 5 umożliwia tryb bezgłowy dla Firefox.
Linia 6 ustawia szerokość okna przeglądarki na 1280 pikseli, a linia 7 ustawia wysokość okna przeglądarki na 720 pikseli.
Linia 9 tworzy obiekt przeglądarki za pomocą sterownika Gecko Firefox i przechowuje go w Firefox zmienny.
Linia 11 definiuje a Strona URL zmienny. Strona URL Zmienna przechowuje adres URL strony internetowej, że Selenium będzie zrzut ekranu.
Linia 13 ładuje Strona URL na przeglądarce.
Wiersz 14 używa save_screenshot () metoda zapisania zrzutu ekranu okna przeglądarki na pliku W3Schools_firefox.png w obrazy/ Katalog projektu.
Wreszcie linia 15 zamyka przeglądarkę.
Następnie uruchom ex01_firefox.py Skrypt Pythona, w następujący sposób:
$ Python3 ex01_firefox.pyPo pomyślnym wykonaniu skryptu zrzut ekranu powinien zostać zapisany w pliku obrazu W3Schools_firefox.png w obrazy/ katalog projektu, jak widać na zrzucie ekranu poniżej.
Robienie zrzutów ekranu różnych rozdzielczości ekranu
W tej sekcji pokaże, jak robić zrzuty ekranu tej samej strony w różnych rozdzielczościach ekranu. W tej sekcji będę korzystać z przeglądarki internetowej Google Chrome, ale możesz użyć Firefox lub dowolnej innej przeglądarki do tej sekcji.
Najpierw stwórz nowy skrypt Python Ex02.py i wpisz następujące wiersze kodu w skrypcie.
od selenu importu WebdriverPo zakończeniu zapisz Ex02.py Skrypt Pythona.
Linia 4 definiuje Strona URL zmienna, która przechowuje adres URL strony internetowej, który chciałbym zrobić zrzuty ekranu w różnych rozdzielczościach ekranu.
Linia 5 definiuje postanowienia lista, która zawiera listę rezolucji, które chciałbym zrobić zrzuty ekranu.
Linia 7 itera przez każdy z rezolucjas w postanowienia lista.
Wewnątrz pętli wiersz 8 drukuje znaczącą wiadomość na konsoli.
Linie 10-15 Utwórz obiekt przeglądarki z rezolucja obecnej iteracji pętli i przechowuje ją w chrom zmienny.
Linia 17 ładuje Strona URL W przeglądarce.
Wiersz 19 generuje ścieżkę obrazu, w której zrzut ekranu zostanie zapisany i przechowuje obraz w Wyjście zmienny.
Linia 20 robi zrzut ekranu okna przeglądarki i przechowuje ją na ścieżce Wyjście.
Linia 21 zamyka przeglądarkę.
Wiersz 22 drukuje sensowną wiadomość na konsoli i kończy pętlę.
Następnie pętla zaczyna się od następnej rozdzielczości ekranu (i.mi., Następna lista).
Następnie uruchom Ex02.py Skrypt Pythona, w następujący sposób:
$ Python3 Ex02.pySkrypt Pythona Ex02.py powinien zrobić zrzuty ekranu podanego adresu URL w każdym z wybranych rozdzielczości ekranu.
Zrzut ekranu W3Schools.com W szerokości 320 pikseli.
Zrzut ekranu W3Schools.com W szerokości 500 pikseli.
Zrzut ekranu W3Schools.com W szerokości 720 pikseli.
Zrzut ekranu W3Schools.com W 1366 pikseli szerokość.
Zrzut ekranu W3Schools.com W 1920 pikseli szerokość.
Jeśli porównasz zrzuty ekranu, powinieneś zobaczyć, że interfejs użytkownika zmienia się wraz z szerokością okna przeglądarki. Korzystając z funkcji zrzutu ekranu selenium, możesz zobaczyć, jak witryna wygląda na różne rozdzielczości ekranu.
Wniosek
W tym artykule pokazano niektóre podstawy robienia zrzutów ekranu za pomocą sterowników internetowych Selenium i Chrome i Firefox. Artykuł pokazał również, jak robić zrzuty ekranu w różnych rozdzielczościach ekranu. To powinno pomóc w rozpoczęciu funkcji z ekranu selenium.