Selenium – #13 – Jak zlokalizować element po nazwie klasy?

Wprowadzenie.

Z wpisu dowiesz się, w jaki sposób zlokalizować element po nazwie klasy. Lokalizowanie elementu zrealizowałem, wykorzystując Selenium WebDriver w Pythonie.

Zakres artykułu.

  • Jak zlokalizować element po nazwie klasy?
  • Testy
  • Zasoby
  • Źródła

Jak zlokalizować element po nazwie klasy?

W celu zlokalizowania elementu na stronie internetowej po nazwie klasy przy użyciu modułu selenium w języku Python należy skorzystać z metody .find_element() obiektu driver. Metoda .find_element() przyjmuje dwa argumenty, gdzie pierwszy informuje metodę, po czym ma się odbyć szukanie na stronie, natomiast drugi argument to ciąg znakowy, który stanowi konkretną nazwę klasy szukanego elementu. Jeżeli chodzi o pierwszy atrybut, to musimy jeszcze pamiętać o zaimportowaniu klasy By z modułu by.py.

from selenium.webdriver.common.by import By

Linijkę kodu, która odpowiada za wyszukanie i utworzenie uchwytu do określonego elementu, przedstawiłem poniżej.

login_credentials_label = driver.find_element(By.CLASS_NAME, ‘login_credentials’)

W celu przetestowania funkcjonalności skorzystałem ze strony https://www.saucedemo.com/.

Podobnie jak w poprzednich wpisach, aby odnaleźć element na stronie, możemy skorzystać z narzędzi developerskich, które są wbudowane w popularne przeglądarki internetowe. Uruchomienie narzędzi deweloperskich zrealizujemy poprzez naciśnięcie przycisku F12. Żeby zobaczyć kod strony, należy wybrać zakładkę “Inspector“, natomiast żeby szybko zlokalizować szukany element w kodzie, możemy skorzystać z narzędzia “Inspect” (przeważnie widocznego w postaci ikonki ze strzałką). Dzięki tej funkcjonalności wystarczy, że najedziemy na interesujący nas element, a w sekcji z kodem zostanie znaleziona i podświetlona linijka odpowiedzialna za ten element.

Aby zobaczyć rezultat wyszukiwania, skorzystamy dodatkowo z pola .text. Pole to zostanie oczywiście przedstawione w innym wpisie, ale na potrzeby tego wpisu, musiałem wyprzedzić nieco wprowadzenie tego pola. Wyświetlenie tekstu w terminalu jednoznacznie pokaże nam, że to ten element znaleźliśmy i możemy na nim przeprowadzać różne akcje.

login_credentials_text = login_credentials_label.text

Cały kod programu prezentuje się następująco.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.common.by import By

def main():
    driver = webdriver.Firefox()
    driver.get("https://www.saucedemo.com/")
    login_credentials_label = driver.find_element(By.CLASS_NAME, 'login_credentials')
    login_credentials_text = login_credentials_label.text
    print(f'{login_credentials_text}')
    driver.quit()

if __name__ == '__main__':
    main()

Testy

W celu przetestowania, wyników skryptu należy otworzyć terminal. W terminalu przechodzimy do folderu, w którym znajduje się środowisko wirtualne naszego projektu.

Aktywujemy nasze środowisko wirtualne poleceniem.

source venv/bin/activate

następnie w terminalu przechodzimy do miejsca, gdzie znajduje się nasz skrypt, a następnie wpisujemy komendę do uruchomienia skryptu.

./main.py

Po wykonaniu skryptu powinniśmy w terminalu ujrzeć tekst z akceptowanymi nazwami użytkowników.

Zasoby

Źródła

[1] Oficjalna strona Selenium, Dostęp z dnia 29 Sierpnia 2023 z https://www.selenium.dev/documentation/webdriver/elements/locators/
[2] Strona do ćwiczenia testowania – saucedemo, Dostęp z dnia 29 Sierpnia 2023 z https://www.saucedemo.com/

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.