1. Otwieranie stron internetowych: pierwsze kroki
Jeśli kiedykolwiek marzyłeś o zostaniu panem stron internetowych, trafiłeś na odpowiedni wykład. Dziś będziemy otwierać strony internetowe przy użyciu Selenium i uczyć się, jak z nimi pracować. Wyobraź sobie, że zarządzasz przeglądarką jak dyrygent orkiestry, tylko że orkiestra to internet, a nuty to kod Python. Zaczynajmy nasz koncert!
Zanim będziemy mogli wejść w interakcję ze stroną internetową, musimy ją otworzyć, prawda? To jak wejście do biblioteki przed znalezieniem książki. W Selenium otwieranie stron odbywa się za pomocą drivera przeglądarki. Zakładamy, że masz już zainstalowane Selenium i odpowiedni web driver (na przykład ChromeDriver lub GeckoDriver). Jeśli byłeś na poprzednim wykładzie, wiesz, jak to zrobić. Jeśli nie, wróć i przeczytaj go jeszcze raz.
Przyjrzyjmy się, jak zacząć od prostego otwierania strony internetowej:
from selenium import webdriver
# Tworzymy instancję drivera przeglądarki Chrome
driver = webdriver.Chrome()
# Otwieramy stronę internetową
driver.get('https://www.example.com')
# Wyświetlamy tytuł strony w konsoli
print(driver.title)
# Zamykamy przeglądarkę
driver.quit()
Co dzieje się w kodzie:
- Importujemy webdriver: To serce Selenium, które pozwala zarządzać przeglądarką.
- Tworzymy driver: Tutaj tworzymy obiekt drivera dla Chrome. Może to być dowolna przeglądarka, do której masz driver.
-
Otwieramy stronę: Metoda
get()
ładuje stronę na podstawie podanego URL. -
Pobieramy tytuł: Za pomocą
driver.title
możemy wypisać tytuł bieżącej strony. -
Zamykamy przeglądarkę: Metoda
quit()
kończy pracę z przeglądarką.
No i proszę, otworzyliśmy naszą pierwszą stronę internetową! To pierwszy krok do globalnej dominacji... ee... chciałem powiedzieć, do automatyzacji!
2. Nawigacja i praca z kartami
Samo otwieranie stron to za mało. Często trzeba poruszać się między stronami albo otwierać kilka kart. Wyobraź sobie, że jesteś podróżnikiem, który może natychmiast teleportować się między miejscami. Z Selenium to jest możliwe.
Przejście między stronami
Przejście z jednej strony na inną jest tak proste, jak otwieranie:
# Przechodzimy na inną stronę
driver.get('https://www.example.org')
# Używamy metody back() do powrotu na poprzednią stronę
driver.back()
# Używamy metody forward() do przejścia do przodu
driver.forward()
Praca z kartami
A co z otwieraniem nowej karty? To jak zabranie ze sobą laptopa do bibliotek w różnych miastach!
# Otwieramy nową kartę i przełączamy się na nią
driver.execute_script("window.open('https://www.example.com', '_blank');")
driver.switch_to.window(driver.window_handles[1])
# Wracamy na pierwszą kartę
driver.switch_to.window(driver.window_handles[0])
Wyjaśnienie:
-
execute_script()
: Używane do wykonywania kodu JavaScript w przeglądarce. Tutaj otwieramy nową kartę. -
switch_to.window()
: Ta metoda pozwala przełączać się między kartami. Używamywindow_handles
do dostępu do listy wszystkich otwartych kart.
3. Interakcja ze stroną internetową
Teraz, gdy nauczyliśmy się otwierać i nawigować po stronach, przejdźmy do bezpośredniej interakcji z nimi — jak prawdziwy programista! To jak nauczenie się tańca z każdą stroną i robienie tego perfekcyjnie.
Interfejs interakcji
Przejdźmy do przykładu, jak pracować z elementami na stronie. Na przykład, znalezienie pola tekstowego i wpisanie do niego tekstu:
# Znajdujemy element po nazwie
search_box = driver.find_element_by_name('q')
# Wpisujemy tekst do znalezionego pola tekstowego
search_box.send_keys('Selenium Python')
# Znajdujemy przycisk wyszukiwania i klikamy na niego
submit_button = driver.find_element_by_name('btnK')
submit_button.click()
Wyjaśnienie:
-
find_element_by_name()
: Metoda używana do znalezienia elementu po nazwie. Tutaj szukamy pola tekstowego wyszukiwania. -
send_keys()
: Pozwala wpisywać tekst do znalezionego elementu. -
click()
: Używane do symulacji kliknięcia na element, np. przycisk.
Dodatkowe metody
Do bardziej zaawansowanych interakcji z elementami dostępnych jest wiele metod. Przeglądaj dokumentację Selenium dla głębszego zrozumienia. Tutaj przedstawimy kilka podstawowych.
-
find_element_by_id()
: Znajduje element po ID. -
find_element_by_class_name()
: Znajduje element po klasie. -
find_element_by_css_selector()
: Używa selektorów CSS do przeszukiwania.
Teraz możesz otwierać i eksplorować strony jak prawdziwy podróżnik internetowy! Nie bój się eksperymentować i próbować nowych rzeczy. Jak to mówią, "błędy to schody do sukcesu", szczególnie jeśli twój kod jest niezawodny i przetestowany!
Typowe błędy
Praca z Selenium może być trochę jak stąpanie po polu minowym, jeśli nie znasz podstawowych pułapek.
Jednym z najczęstszych błędów jest zapomnienie o zakończeniu sesji przeglądarki. Może to prowadzić
do zawieszania się procesów przeglądarki w pamięci. Zawsze używaj
driver.quit()
na końcu swojego skryptu.
Kolejna bolączka programisty w Selenium — zmiany w strukturze stron. Jeśli element został znaleziony za pomocą selektora, a twórca strony zmienił strukturę HTML, twój skrypt nagle przestaje działać. To jak gdyby ktoś nagle zamknął drzwi, kiedy próbowałeś wejść do pokoju. Ważne jest, aby pisać elastyczny kod i regularnie go aktualizować zgodnie ze zmianami na stronie.
GO TO FULL VERSION