W tym artykule pokażę Ci, jak zlokalizować i wybrać elementy ze stron internetowych za pomocą tekstu w selenium z biblioteką selenium Python. Więc zacznijmy.
Wymagania wstępne:
Aby wypróbować polecenia i przykłady tego artykułu, musisz mieć:
Aby spełnić wymagania 4, 5 i 6, przeczytaj mój artykuł Wprowadzenie do selenu w Pythonie 3.
Można znaleźć wiele artykułów na inne tematy na Linuxhint.com. Pamiętaj, aby je sprawdzić, jeśli potrzebujesz pomocy.
Konfiguracja katalogu projektu:
Aby wszystko się zorganizowano, stwórz nowy katalog projektowy selen-text-select/ następująco:
$ mkdir -pv selen-text-select/sterowniki
Przejść do selen-text-select/ Katalog projektu w następujący sposób:
$ cd selen-text-select/
Utwórz wirtualne środowisko Python w katalogu projektu w następujący sposób:
$ Virtualenv .Venv
Aktywuj środowisko wirtualne w następujący sposób:
$ źródło .venv/bin/aktywuj
Zainstaluj bibliotekę Selenium Python za pomocą PIP3 w następujący sposób:
$ PIP3 instaluj selenPobierz i zainstaluj cały wymagany sterownik internetowy w kierowcy/ Katalog projektu. Wyjaśniłem proces pobierania i instalowania sterowników internetowych w moim artykule Wprowadzenie do selenu w Pythonie 3.
Znalezienie elementów według tekstu:
W tej sekcji pokażę ci przykłady znalezienia i wyboru elementów strony internetowej według tekstu z biblioteką selenium Python.
Zacznę od najprostszego przykładu wyboru elementów strony internetowej według tekstu, wybierania linków ze strony internetowej.
Na stronie logowania na Facebooku.com, mamy link Zapomniane konto? Jak widać na zrzucie ekranu poniżej. Wybierzmy ten link z Selenium.
Utwórz nowy skrypt Python Ex01.py i wpisz w poniższych wierszach kodów.
od selenu importu WebdriverPo zakończeniu zapisz Ex01.py Skrypt Pythona.
Linia 1-4 importuje wszystkie wymagane komponenty do programu Python.
Linia 6 tworzy chrom przeglądarka obiekt za pomocą chromedriver binarny z kierowcy/ Katalog projektu.
Linia 8 informuje przeglądarkę, aby załadował stronę internetową Facebook.com.
Wiersz 10 znajduje link, który ma tekst Zapomniane konto? Za pomocą selektora XPath. W tym celu użyłem selektora XPath //*[text () = 'zapomniane konto?'].
Selektor XPath zaczyna się od //, co oznacza, że element może znajdować się w dowolnym miejscu na stronie. * Symbol mówi Selenium, aby wybrał dowolny znacznik (A Lub P Lub Zakres, itp.), który pasuje do stanu wewnątrz nawiasów kwadratowych [] []. Warunkiem jest to, że tekst elementu jest równy Zapomniane konto?
tekst() Funkcja XPath służy do uzyskania tekstu elementu.
Na przykład, tekst() zwroty Witaj świecie Jeśli wybierze następujący element HTML.
Witaj świecieWiersz 11 wysyła klawisz naciśnij do Zapomniane konto? Połączyć.
Uruchom skrypt Python Ex01.py Z następującym poleceniem:
$ Python Ex01.pyJak widać, przeglądarka internetowa znajduje, wybiera i naciska Klucz na Zapomniane konto? Połączyć.
Zapomniane konto? Link przenosi przeglądarkę na następną stronę.
W ten sam sposób możesz łatwo wyszukać elementy, które mają pożądaną wartość atrybutu.
Tutaj Zaloguj sie przycisk to wejście element, który ma wartość atrybut Zaloguj sie. Zobaczmy, jak wybrać ten element według tekstu.
Utwórz nowy skrypt Python Ex02.py i wpisz w poniższych wierszach kodów.
od selenu importu WebdriverPo zakończeniu zapisz Ex02.py Skrypt Pythona.
Linia 1-4 importuje wszystkie wymagane komponenty.
Linia 6 tworzy chrom przeglądarka obiekt za pomocą chromedriver binarny z kierowcy/ Katalog projektu.
Linia 8 informuje przeglądarkę, aby załadował stronę internetową Facebook.com.
Wszystko dzieje się tak szybko po uruchomieniu skryptu. Więc użyłem spać() funkcjonować wiele razy w Ex02.py do opóźniania poleceń przeglądarki. W ten sposób możesz zauważyć, jak wszystko działa.
Wiersz 11 znajduje pole tekstowe wejściowe e -mail i przechowuje odniesienie elementu w e -mail zmienny.
Wiersz 12 znajduje pudełko tekstowe wejściowe e -mail i przechowuje odniesienie elementu w e -mail zmienny.
Wiersz 13 znajduje element wejściowy, który ma atrybut wartość z Zaloguj sie za pomocą selektora XPath. W tym celu użyłem selektora XPath //*[@wartość = „Zaloguj się”].
Selektor XPath zaczyna się od //. Oznacza to, że element może znajdować się w dowolnym miejscu na stronie. * Symbol mówi Selenium, aby wybrał dowolny znacznik (wejście Lub P Lub Zakres, itp.), który pasuje do stanu wewnątrz nawiasów kwadratowych [] []. Warunkiem jest atrybut elementu wartość jest równe Zaloguj sie.
Wiersz 15 wysyła manekin wejściowy@e -mail.com do pola tekstowego wejściowego e -mail, a linia 16 opóźnia następną operację.
Wiersz 18 wysyła tajny pas do wejścia do pola tekstowego wprowadzania hasła, a wiersz 19 opóźnia następną operację.
Wiersz 21 wysyła Klucz naciśnij do przycisku logowania.
Uruchom Ex02.py Skrypt Pythona z następującym poleceniem:
$ Python3 Ex02.pyJak widać, pola tekstowe e -mail i hasła są wypełnione naszymi wartościami manekinowymi i Zaloguj sie Przycisk jest naciśnięty.
Następnie strona nawiguje do następnej strony.
Znalezienie elementów według częściowego tekstu:
We wcześniejszej sekcji pokazałem, jak znaleźć elementy według określonego tekstu. W tej sekcji pokażę Ci, jak znaleźć elementy ze stron internetowych za pomocą częściowego tekstu.
W przykładzie, Ex01.py, Szukałem elementu łącza, który ma tekst Zapomniane konto?. Możesz wyszukać ten sam element łącza za pomocą częściowego tekstu, takiego jak Zapomniany ACC. Aby to zrobić, możesz użyć zawiera() Funkcja xpath, jak pokazano w wierszu 10 Ex03.py. Reszta kodów jest taka sama jak w Ex01.py. Wyniki będą takie same.
W linii 10 Ex03.py, Warunki wyboru zastosowano zawiera (źródło, tekst) Funkcja XPath. Ta funkcja przyjmuje 2 argumenty, źródło, I tekst.
zawiera() funkcja sprawdza, czy tekst podany w drugim argumencie częściowo pasuje do źródło wartość w pierwszym argumencie.
Źródłem może być tekst elementu (tekst()) lub wartość atrybutu elementu (@Attr_Name).
W Ex03.py, Tekst elementu jest sprawdzany.
Kolejna przydatna funkcja XPath do znalezienia elementów ze strony internetowej za pomocą częściowego tekstu jest zaczyna się z (źródło, tekst). Ta funkcja ma takie same argumenty jak zawiera() funkcja i jest używana w ten sam sposób. Jedyną różnicą jest to, że zaczynać z() Funkcja sprawdza, czy drugi argument tekst jest początkowym ciągiem pierwszego argumentu źródło.
Przepisałem przykład Ex03.py Aby wyszukać element, od którego zaczyna się tekst Zapomniany, Jak widać w linii 10 Ex04.py. Wynik jest taki sam jak w Ex02 I Ex03.py.
Przepisałem też Ex02.py tak, aby wyszukiwał element wejściowy, dla którego wartość Atrybut zaczyna się od Dziennik, Jak widać w linii 13 Ex05.py. Wynik jest taki sam jak w Ex02.py.
Wniosek:
W tym artykule pokazałem, jak znaleźć i wybrać elementy ze stron internetowych według tekstu z biblioteką selenium Python. Teraz powinieneś być w stanie znaleźć elementy ze stron internetowych według określonego tekstu lub częściowego tekstu z biblioteką Selenium Python.