Selenium – #11 – Jak zlokalizować element po ID?

Wprowadzenie.

Z wpisu dowiesz się, w jaki sposób zlokalizować element po jego ID, czyli po identyfikatorze, oczywiście jeżeli takowy posiada. Lokalizowanie elementu zrealizowałem wykorzystując Selenium WebDriver w Pythonie.

Zakres artykułu.

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

Jak zlokalizować element po ID?

W celu zlokalizowania elementu na stronie internetowej 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 i stanowi on konkretne id elementu, który będzie szukany w kodzie strony. 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.

driver.find_element(By.ID, ‘id_elementu’)

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

Aby odnaleźć element na stronie, możemy skorzystać z narzędzi developerskich, które są wbudowane w bardziej 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.

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.ID, '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 konsoli 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.