Selenium w embedded (#2) – Obsługa urządzeń

Selenium w embedded (#2) - obsługa urządzeń

Poziom trudności
1.5/5

A więc czas na to, żeby skorzystać z webowego panelu kontrolnego za pomocą Selenium. Aby przygotować się do tego, należy zapoznać się z poprzednią częścią serii Selenium w embedded. Będziemy kontynuować pracę z webdriver’em:

Router

Rozumiem, że paneli kontrolnych jest tyle, ile wersji routerów dostępnych na rynku. Więc na potrzeby tego artykułu użyjemy emulatora udostępnionego przez firmę TP-Link, dzięki temu każdy będzie mógł przećwiczyć poniższy scenariusz.

Znajdź element na stronie za pomocą...

Od strony Selenium posiadamy funkcje, które pozwalają nam odnaleźć dowolny element na stronie. Możemy to zrobić na przykład za pomocą id danego elementu lub XPath:

  1. driver.find_element_by_id('userName')
  2. driver.find_element_by_xpath('//*[@id="userName"]')

Ale czym jest ów magiczny XPath i jak go możemy uzyskać?

XPath

Jest to język wyszukiwania dowolnego elementu na stronie internetowej. Jego przewagą nad innymi sposobami wyszukiwania (np. za pomocą id) jest jego unikalny. Każdy element ma niepowtarzalny XPath. Najprostszym sposobem sczytania jego wartości jest użycie przeglądarki. W Chrome’ie wybieramy prawym przyciskiem interesujący nas element, a następnie  opcję Zbadaj. Po prawej stronie przeglądarki pojawi się dodatkowe okno z kodem strony i zaznaczonym elementem, który wybraliśmy (zbadaliśmy). Naciśnij w zaznaczony kod prawym przyciskiem, wybierz w menu Copy -> Copy XPath:

Selenium w embedded (#2)   Obsługa urządzeń image

Zalogowany

Skoro już wiemy jak skopiować XPath ze strony i wyszukać go od strony Selenium, czas złożyć to w całość, tak aby zalogować się do emulowanego router’a. Zacznijmy od wprowadzenia loginu. XPath dla tego elementu to //*[@id=”userName”]. Po odnalezieniu go za pomocą komendy find_element_by_xpath musimy wprowadzić do niego login. Przyjdzie nam z pomocą metoda send_keys, w której jako argument wpisujemy interesujący nas tekst. Całość powtarzamy do wpisania hasła. Teraz czas wyszukać przycisk i go nacisnąć. Aby przycisnąć wyszukany przycisk, użyje metody click():

  1. import selenium
  2. from selenium import webdriver
  3. from pyvirtualdisplay import Display
  4. display = Display(visible=0, size=(1600, 1200))
  5. display.start()
  6. driver = webdriver.Chrome('/usr/bin/chromedriver')
  7. driver.get('https://emulator.tp-link.com/EMULATOR_wr940nv6_eu_RE/userRpm/LoginRpm.htm')
  8. user = driver.find_element_by_xpath('//*[@id="userName"]')
  9. user.send_keys("admin")
  10. password = driver.find_element_by_xpath('//*[@id="pcPassword"]')
  11. password.send_keys("admin")
  12. login_btn = driver.find_element_by_xpath('//*[@id="loginBtn"]')
  13. login_btn.click()
  14. print(driver.current_url)

Po zalogowaniu wyświetlam adres strony, na której aktualnie się znajduję za pomocą driver.current_url. Jest to jeden ze sposobów, w jaki możemy sprawdzić, czy logowanie się powiodło – sprawdzamy czy po próbie logowania jesteśmy na stronie, która ukazuje się po poprawnym zalogowaniu.

W ten sposób możemy manipulować opcjami naszego router’a, w zależności czego potrzebujemy użyć w naszych testach. Może potrzebujesz przełączać WiFi lub uruchamiać WPS? Selenium jest jednym ze sposobów dzięki któremu możesz to osiągnąć w prosty sposób.

Dodaj komentarz