Używanie selenu z sterownikiem Firefox

Używanie selenu z sterownikiem Firefox
Selenium to świetne narzędzie do testowania przeglądarki, automatyzacji sieci i skrobania internetowego. Selen może kontrolować większość nowoczesnych przeglądarków internetowych. I.mi., Firefox, Chrom, Chrom, Opera, Apple Safari. Aby kontrolować przeglądarkę, Selenium potrzebuje narzędzia o nazwie Web Driver. Większość nowoczesnych dostawców przeglądarki zapewnia oprogramowanie sterowników internetowych dla swoich przeglądarków internetowych.

Aby kontrolować przeglądarkę internetową Mozilla Firefox z Selenium, musisz użyć sterownika Gecko.

W tym artykule pokażę Ci, jak skonfigurować selen do uruchamiania testów przeglądarki, automatyzacji sieci, zadań ze skrobaniem sieci za pomocą przeglądarki internetowej Mozilla Firefox. Więc zacznijmy.

Wymagania wstępne:

Aby wypróbować polecenia i przykłady tego artykułu, musisz mieć,

1) Dystrybucja Linux (najlepiej Ubuntu) zainstalowana na komputerze.
2) Python 3 zainstalowany na komputerze.
3) PIP 3 zainstalowany na komputerze.
4) Mozilla Firefox zainstalowany na komputerze.

Można znaleźć wiele artykułów na te tematy na Linuxhint.com. Pamiętaj, aby je sprawdzić, jeśli potrzebujesz pomocy.

Przygotowanie wirtualnego środowiska Python 3 do projektu:

Wirtualne środowisko Python służy do stworzenia izolowanego katalogu projektu Python. Moduły Python, które instalowane za pomocą PIP zostaną zainstalowane tylko w katalogu projektu, a nie na całym świecie.

Pyton Virtualenv Moduł służy do zarządzania wirtualnymi środowiskami Python.

Możesz zainstalować Python Virtualenv moduł globalnie za pomocą PIP 3 w następujący sposób:

$ sudo pip3 instaluj Virtualenv

Pyton Virtualenv należy zainstalować.

Utwórz katalog projektu Selenium-Firefox/ W obecnym katalogu roboczym w następujący sposób:

$ mkdir -pv selen -firefox/sterowniki

Przejdź do nowo utworzonego katalogu projektu Selenium-Firefox/ następująco:

$ cd selen-firefox/

Utwórz wirtualne środowisko Python w katalogu projektu za pomocą następującego polecenia:

$ Virtualenv .Venv

W wirtualnym środowisku Python powinno zostać utworzone w katalogu projektu.

Aktywuj wirtualne środowisko Python z katalogu projektu za pomocą następującego polecenia:

$ źródło .env/bin/aktywuj

Instalowanie biblioteki Selenium Python:

Biblioteka selenium jest dostępna w oficjalnym repozytorium Python PyPi.

Możesz zainstalować bibliotekę Selenium Python za pomocą PIP 3 w następujący sposób:

$ PIP3 instaluj selen

Należy zainstalować bibliotekę Selenium Python.

Instalowanie sterownika Gecko Firefox:

Aby pobrać sterownik Firefox Gecko, odwiedź stronę Github, które Mozilla/Geckodriver z ulubionej przeglądarki internetowej.

Jak widać, v0.26.0 to najnowsza wersja Driver Gecko Firefox w momencie tego pisania.

Aby pobrać sterownik Gecko Firefox, przewiń trochę w dół i kliknij Tar Linux Geckodriver.Archiwum GZ w zależności od architektury systemu operacyjnego.

Jeśli używasz 32-bitowego systemu operacyjnego, kliknij Geckodriver-V0.26.0-linux32.smoła.GZ połączyć.

Jeśli używasz 64-bitowego systemu operacyjnego, kliknij Geckodriver-V0.26.0-Linuxx64.smoła.GZ połączyć.

Pobierz 64-bitową wersję sterownika Gecko Firefox.

Twoja przeglądarka powinna skrócić cię do zapisania archiwum. Wybierać Zapisz plik i kliknij OK.

Należy pobrać sterownik Gecko Firefox.

Archiwum sterownika Gecko Firefox powinno zostać pobrane w ~/Pobieranie informator.

Możesz wydobyć Geckodriver-V0.26.0-Linux64.smoła.GZ archiwum z ~/Pobieranie katalog do kierowcy/ Katalog twojego projektu z następującym poleceniem:

$ tar -xzf ~/pobrań/geckodriver -v0.26.0-Linux64.smoła.sterowniki GZ -C/

Po wyodrębnianiu archiwum sterownika Gecko Firefox, nowy plik binarny Geckodriver powinien być utworzony w kierowcy/ katalog twojego projektu, jak widać na zrzucie ekranu poniżej.

Pierwsze kroki z Selenium za pomocą Driver Gecko Firefox:

W tej sekcji pokażę ci, jak skonfigurować swój pierwszy skrypt selenium Python, aby sprawdzić, czy sterownik Gecko Firefox działa.

Najpierw stwórz nowy skrypt Python Ex00.py w katalogu projektu i wpisz w następujących wierszach.

od selenu importu Webdriver
z selenu.Webdriver.wspólny.Klucze importują klucze
Browser = WebDriver.Firefox (Exceutable_path = "./sterowniki/geckodriver ")
przeglądarka.get ('https: // www.Linuxhint.com ')
Drukuj („Tytuł: % s” % przeglądarka.tytuł)
przeglądarka.zrezygnować()

Po zakończeniu zapisz Ex00.py Skrypt Pythona.

Linia 1 i 2 importuje wszystkie wymagane elementy z selen Biblioteka Python.

Linia 4 tworzy obiekt sterownika internetowego Firefox za pomocą Webdriver.Firefox () Metoda i przechowuje ją w przeglądarka zmienny. Exceutable_path Argument służy do informowania kierowcy, gdzie szukać binarnego sterownika Gecko Firefox. W tym przypadku Geckodriver binarny z kierowcy/ Katalog projektu.

On line 6, przeglądarka.Dostawać() Metoda ładuje się Linuxhint.com W przeglądarce internetowej Firefox.

Gdy strona kończy się ładowanie, wiersz 7 drukuje tytuł strony internetowej tutaj, przeglądarka.tytuł właściwość służy do uzyskania dostępu do tytułu strony internetowej.

Linia 8 zamyka przeglądarkę internetową Firefox za pomocą przeglądarka.zrezygnować() metoda.

Możesz uruchomić skrypt Python Ex00.py Z następującym poleceniem:

$ Python3 Ex00.py

Selen powinien otworzyć przeglądarkę internetową Firefox i odwiedzić Linuxhint.Witryna COM automatycznie.

Gdy strona się załaduje, powinien wydrukować tytuł witryny na konsoli, a przeglądarka internetowa powinna zamykać się automatycznie.

Tak więc Selen działa poprawnie z kierowcą Gecko Firefox.

Przykład 01: Uruchomienie Firefoxa w trybie bezgłowym za pomocą selenu

Możesz także uruchomić selen z sterownikiem Gecko Firefox w trybie bezgłowym. Selenium Firefox Bezpośredni tryb bezgłowy nie wymaga żadnego graficznego interfejsu użytkownika zainstalowanego na komputerze. Tak więc będziesz mógł uruchomić selenium Firefox w dowolnych serwerach Linux.

Najpierw stwórz nowy skrypt Python Ex01.py w katalogu projektu i wpisz w poniższych wierszach kodów.

od selenu importu Webdriver
z selenu.Webdriver.Firefox.Opcje importu opcje
z selenu.Webdriver.wspólny.Klucze importują klucze
FirefoxOptions = Options ()
Firefoxoptions.add_argument („-bezgłowy”)
Browser = WebDriver.Firefox (Exceutable_path = "./sterowniki/geckodriver ", opcje = Firefoxoptions)
przeglądarka.get ('https: // www.Linuxhint.com ')
Drukuj („Tytuł: % s” % przeglądarka.tytuł)
przeglądarka.zrezygnować()

Po zakończeniu zapisz Ex01.py Skrypt Pythona.

Linia 1 i linia 3 są takie same jak linia 1 i linia 2 Ex00.py Skrypt Pythona.

Linia 2 importuje Firefox Opcje z selen biblioteka.

Wiersz 5 tworzy obiekt opcji Firefox i przechowuje go w Firefoxoptions zmienny.

Linia 6 używa Firefoxoptions.add_argument () metoda dodania -bezgłowy Flaga wiersza poleceń Firefoxa do Firefoxoptions obiekt.

On line 8, opcje argument służy do przekazania Firefoxoptions podczas inicjowania sterownika internetowego Firefox za pomocą Webdriver.Firefox () metoda.

Reszta linii Ex01.py Skrypt jest taki sam jak Ex00.py.

Możesz uruchomić skrypt Python Ex01.py Z następującym poleceniem:

$ Python3 Ex01.py

Jak widać, tytuł strony internetowej (Linuxhint.com) jest wydrukowany na konsoli bez otwierania żadnej graficznej wersji przeglądarki internetowej Firefox.

Jak widać, Selenium pracuje również nad środowiskiem bezgłowym Ubuntu, w którym nie mam zainstalowanego graficznego interfejsu użytkownika.

Teraz, gdy wiesz, jak przekazać -bezgłowy Flagowa linia polecenia Firefox za pomocą sterownika Gecko Gecko Selenium, możesz podać dowolne inne flagi/opcje linii poleceń Firefox.

Wszystkie obsługiwane flagi/opcje linii poleceń Firefox można znaleźć w opcjach wiersza poleceń - Mozilla | Strona MDN.

Przykład 02: Wyodrębnienie Lorema ipsum za pomocą selenu

W tej sekcji pokażę Ci, jak zrobić podstawowe złomowanie sieci za pomocą sterownika Gecko Gecko Selenium Firefox.

Najpierw odwiedź stronę generatora Lorema ipsum z przeglądarki internetowej Firefox. Jak widać, strona wygenerowała 5 losowych akapitów. Wyodrębnijmy cały wygenerowany tekst (wszystkie 5 akapitów) z tej strony.

Zanim zaczniesz wyodrębniać informacje ze strony internetowej, musisz znać strukturę HTML treści strony internetowej.

Możesz łatwo znaleźć strukturę HTML zawartości, którą chcesz wyodrębnić za pomocą Narzędzie programistów Firefox. Otworzyć Narzędzie programistów Firefox, Naciśnij prawy przycisk myszy (RMB) na stronie i kliknij Sprawdź element (Q).

Narzędzie programistów Firefox należy otworzyć. Kliknij na Sprawdź ikonę () jak zaznaczono na zrzucie ekranu poniżej.

Unosić się na pierwszym akapicie, jak pokazano na zrzucie ekranu poniżej. Następnie naciśnij lewy przycisk myszy (LMB), aby go wybrać.

Struktura HTML akapitów powinna być wyświetlana w Sprawdzać zakładka Narzędzie programistów Firefox. Jak widać, wygenerowane akapity Lorema ipsum są w div tag, który ma ID Lipsum.

Aby wyodrębnić akapity Lorema ipsum za pomocą sterownika Gecko Gecko Selenium, utwórz nowy skrypt Python Ex02.py w katalogu projektu i wpisz w poniższych wierszach kodów.

od selenu importu Webdriver
z selenu.Webdriver.Firefox.Opcje importu opcje
z selenu.Webdriver.wspólny.Klucze importują klucze
FirefoxOptions = Options ()
Firefoxoptions.add_argument („-bezgłowy”)
Browser = WebDriver.Firefox (Exceutable_path = "./sterowniki/geckodriver ", opcje = Firefoxoptions)
przeglądarka.get ('https: // www.Lipsum.com/feed/html ')
Lipsum = przeglądarka.find_element_by_id („lipsum”)
wydruku (Lipsum.tekst)
przeglądarka.zrezygnować()

Po zakończeniu zapisz Ex02.py Skrypt Pythona.

Wiersz 10 ładuje stronę generatora Lorema ipsum za pomocą przeglądarka.Dostawać() metoda.

Zawartość Lorema ipsum jest wewnątrz div tag za pomocą identyfikatora Lipsum. Linia 12 używa przeglądarka.find_element_by_id () metoda wyboru na stronie internetowej i przechowywania w Lipsum zmienny.

Linia 13 drukuje wygenerowaną zawartość Lorema ipsum na konsoli. Tutaj tekst właściwość służy do dostępu do treści div element z identyfikatorem Lipsum.

Teraz uruchom skrypt Python Ex02.py następująco:

$ Python3 Ex02.py

Jak widać, Selenium poprawnie wyodrębniał zawartość Lorema ipsum.

Uruchamianie skryptu Pythona Ex02.py Ponownie da ci inne wyjście, jak widać na zrzucie ekranu poniżej.

Przykład 03: Wyodrębnienie danych listy za pomocą selenu

W tej sekcji pokażę ci przykład danych z listy złomowania sieci ze strony internetowej za pomocą sterownika Gecko Gecko Selenium w trybie bezgłowym.

Najpierw odwiedź losowo-nazwy generatora.Informacje z przeglądarki internetowej Firefox. Ta strona będzie generować 10 losowych nazw za każdym razem, gdy ponownie załadujesz stronę, jak widać na zrzucie ekranu poniżej. Naszym celem jest wyodrębnienie tych losowych nazw przy użyciu selenu w trybie bezgłowym.

Aby znaleźć strukturę HTML listy, musisz otworzyć Narzędzie programistów Firefox. Aby to zrobić, naciśnij prawy przycisk myszy (RMB) na stronie i kliknij Sprawdź element (Q).

Narzędzie programistów Firefox należy otworzyć. Kliknij na Sprawdź ikonę () jak zaznaczono na zrzucie ekranu poniżej.

Następnie unosisz się nad listą Losowe nazwy. Lista powinna być wyróżniona jako oznaczona na zrzucie ekranu poniżej. Następnie naciśnij lewy przycisk myszy (LMB), aby wybrać listę.

Kod HTML z listy powinien zostać wyróżniony w Inspektor zakładka Narzędzie programistów Firefox. Tutaj lista losowych nazw znajduje się wewnątrz div element. div element ma klasa nazwa wyniki. Wewnątrz mamy ol element z klasa nazwa Lista imion. W środku ol element, każda z nazwisk jest w Li element.

Z tego możemy powiedzieć, aby dostać się do Li tagi, musimy śledzić div.Wyniki> ol.Namelista> Li

Tak więc nasz selektor CSS będzie div.Wyniki ol.Namelista Li (Wystarczy wymienić > Znaki z Whitespace)

Aby wyodrębnić te losowe nazwy, utwórz nowy skrypt Python Ex03.py i wpisz w poniższych wierszach kodów.

od selenu importu Webdriver
z selenu.Webdriver.Firefox.Opcje importu opcje
z selenu.Webdriver.wspólny.Klucze importują klucze
FirefoxOptions = Options ()
Firefoxoptions.add_argument („-bezgłowy”)
Browser = WebDriver.Firefox (Exceutable_path = "./sterowniki/geckodriver ", opcje = Firefoxoptions)
przeglądarka.GET ("http: // losowo-nazwa generator.Informacje/")
Namelist = przeglądarka.find_elements_by_css_selector ('div.Wyniki ol.Namelista Li ')
dla nazwy w nazwie:
Nazwa wydruku.tekst)
przeglądarka.zrezygnować()

Po zakończeniu zapisz Ex03.py Skrypt Pythona.

Wiersz 10 ładuje witrynę generatora losowych nazw za pomocą przeglądarka.Dostawać() metoda.

Wiersz 11 wybiera listę nazw za pomocą przeglądarka.find_elements_by_css_selector () metoda. Ta metoda wykorzystuje selektor CSS div.Wyniki ol.Namelista Li Aby znaleźć listę nazwisk. Następnie lista nazw jest przechowywana w Lista imion zmienny.

W wierszach 13 i 14, a Do pętla służy do iteracji przez Lista imion Lista Li elementy. W każdej iteracji treść Li element jest wydrukowany na konsoli.

Teraz uruchom skrypt Python Ex03.py następująco:

$ Python3 Ex03.py

Jak widać, skrypt Python Ex03.py Pobierz wszystkie losowe nazwy ze strony internetowej.

Jeśli uruchomisz skrypt po raz drugi, powinien zwrócić nową listę losowych nazw, jak widać na zrzucie ekranu poniżej.

Wniosek:

Ten artykuł powinien pomóc Ci zacząć od selenu za pomocą przeglądarki internetowej Firefox. Powinieneś być w stanie dość łatwo skonfigurować projekt sterownika Gecko Selenium Firefox i uruchomić testy przeglądarki, automatyzację sieci i zadania ze skrobaniem internetowym.