CodeGym /Kurs Javy /Python SELF PL /Wypełnianie formularzy: wpisywanie tekstu i klikanie przy...

Wypełnianie formularzy: wpisywanie tekstu i klikanie przycisków

Python SELF PL
Poziom 36 , Lekcja 0
Dostępny

1. Wprowadzenie do interakcji z elementami formularzy

Formularze na stronach internetowych to miejsce, gdzie zaczyna się magia interakcji. Wyobraź sobie formularz jako tajemniczy pilot sterowania, który pozwala użytkownikowi komunikować się z systemem. Ale zamiast wydawać polecenia robotowi sprzątającemu, przekazujemy informacje stronie.

Jak wpisywać tekst w pola tekstowe

Na początek omówmy, jak Selenium pozwala nam wpisywać tekst w pola tekstowe. Robi się to za pomocą metody send_keys(). Zanurzmy się w to krok po kroku.

Python

from selenium import webdriver

# Podajemy ścieżkę do web-drivera, to jest ścieżka do twojej kopii webdrivera
driver = webdriver.Chrome(executable_path='path/to/chromedriver')

# Otwieramy stronę internetową
driver.get('http://example.com/login')

# Znajdujemy pole wprowadzania (np. po id) i wpisujemy tekst
username_field = driver.find_element_by_id('username')
username_field.send_keys('moje_super_konto')

password_field = driver.find_element_by_id('password')
password_field.send_keys('moje_super_tajne_hasło')

W tym prostym przykładzie otwieramy stronę, znajdujemy pola tekstowe po ich ID, a następnie używamy metody send_keys(), aby przekazać tekst do pól. Tak, to jest tak proste, jak kopiuj-wklej na nowym poziomie!

Ważny trik dla wypełniania pól tekstowych

Jeśli wydaje ci się, że formularz zachowuje się dziwnie, możliwe, że w polu tekstowym już jest tekst. Zanim wprowadzisz nowy tekst, wyczyść stary za pomocą metody clear().

Python

username_field.clear()
username_field.send_keys('nowa_wartość')

Ten mały trik uratuje cię przed wieloma problemami, naprawdę!

2. Klikanie przycisków

Teraz, gdy nasze pola tekstowe są wypełnione, czas kliknąć przycisk, np. aby wysłać formularz. W Selenium robi się to za pomocą metody click(). Coś jak klikanie "Zobacz więcej memów", tylko programowo.

Python

# Znajdujemy przycisk po nazwie i klikamy
login_button = driver.find_element_by_name('login')
login_button.click()

I tak oto twój skrypt Selenium staje się mistrzem klikania przycisków, zdolnym do więcej niż tylko klikania "Wybierz" w grach!

Przykłady użycia

Przyjrzyjmy się przykładom, które łączą wykorzystanie metod send_keys() i click() do wypełniania i wysyłania formularza rejestracyjnego.

Python

# Otwieramy stronę rejestracyjną
driver.get('http://example.com/register')

# Wypełniamy formularz rejestracyjny
driver.find_element_by_id('first_name').send_keys('Jan')
driver.find_element_by_id('last_name').send_keys('Kowalski')
driver.find_element_by_id('email').send_keys('jan@example.com')
driver.find_element_by_id('password').send_keys('superTajne123')

# Klikamy przycisk "Zarejestruj się"
register_button = driver.find_element_by_css_selector('.register-button')
register_button.click()

Ten prosty przykład pokazuje, jak możesz zautomatyzować proces rejestracji na stronie. To może być przydatne do testowania formularza rejestracji i symulacji aktywności użytkowników.

3. Obsługa kapryśnych formularzy

Czasami strony lubią się z tobą drażnić. Klikasz przycisk i nic się nie dzieje. Albo co gorsza — strona pokazuje błąd. Omówmy kilka typowych problemów i jak je rozwiązać.

Praca z dynamicznymi elementami

Czasami elementy na stronie ładują się z opóźnieniem. Twój skrypt może próbować wejść w interakcję z elementem, zanim ten się pojawi. To jak próbowanie zrobić omlet, zanim przyniesiesz jajka z lodówki.

Aby uniknąć takich kaprysów, możesz użyć oczekiwań. Selenium pozwala ci poczekać, aż element stanie się dostępny:

Python

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Czekamy, aż element stanie się klikalny, zanim klikniesz
register_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '.register-button'))
)
register_button.click()

Dzięki WebDriverWait możesz powiedzieć Selenium, żeby poczekał, aż element będzie gotowy do działania. To znacznie zwiększa niezawodność twojego skryptu.

Interakcja z niewidocznymi elementami

Niektóre elementy na stronie mogą być niewidoczne — np. ukryte przyciski lub pola. Może to powodować błąd przy próbie interakcji. W takim przypadku możesz uczynić element widocznym za pomocą JavaScript:

Python

driver.execute_script("arguments[0].style.visibility='visible';", hidden_element)
hidden_element.click()

Ta metoda pozwala ci wchodzić w interakcję z elementami, które z jakiegoś powodu są ukryte.

4. Praktyczne zastosowanie: automatyzacja formularzy

Teraz, gdy wiemy, jak wchodzić w interakcję z formularzami, wyobraźmy sobie, gdzie to można zastosować w prawdziwym życiu.

Twój szef postanowił, że wszyscy muszą codziennie wypełniać raporty przez formularz internetowy. Ty oczywiście chcesz trochę zautomatyzować tę rutynę. Dzięki Selenium możesz stworzyć skrypt, który automatycznie wypełnia i wysyła formularz z danymi twojego raportu każdego dnia.

Przykład automatyzacji raportu

Wyobraź sobie, że mamy stronę z formularzem dziennego raportu. Formularz zawiera pola na twoje imię, dział oraz raport z wykonanej pracy. Zautomatyzujmy to:

Python

driver.get('http://example.com/daily_report')

# Wypełniamy formularz raportu
driver.find_element_by_id('name').send_keys('Anna Kowalska')
driver.find_element_by_id('department').send_keys('Technologia')
driver.find_element_by_id('report').send_keys('Dzisiaj naprawiłam wszystkie błędy!')

# Wysyłamy formularz
submit_button = driver.find_element_by_id('submit')
submit_button.click()

Taki skrypt może zaoszczędzić cenny czas i wyeliminować możliwość ludzkich błędów. Pamiętaj, że w przypadku skomplikowanych formularzy warto przetestować każdy krok i uwzględnić możliwe błędy.

I tak doszliśmy do końca naszego wykładu na dziś! Nauczyliśmy się wprowadzać tekst do pól i klikać przyciski jak systemy ankiet online, co daje ci niesamowitą moc automatyzacji interakcji z witrynami.

Kontynuuj eksperymentowanie z Selenium i zostań z nami, aby dowiedzieć się więcej o tym, jak przekształcić swoją przeglądarkę w prawdziwą maszynę do automatyzacji!

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION