Zapisy otwarte! Dołącz do kursu Selenium w Javie lub Selenium w C#. Tylko do 23.09.2021 do godz. 21:00. Zapisz się tutaj.

Selenium 42. Ramki

W tej lekcji pokażę Ci jak radzić sobie z ramkami i zaznaczaniem elementów wewnątrz nich.

Nowy adres strony

W tej lekcji pokazuję przykład ramki z tweetami od NASA. Nie ma już tej ramki widocznej na stronie głównej, ale dzielny wojownik Piotr, dokopał się do innej podstrony, na której ta ramka jest: https://www.nasa.gov/topics/history/index.html. Jeżeli chcesz wykonać tę lekcję razem ze mną, użyj tej właśnie podstrony.

Żeby móc zaznaczyć jakiś element wewnątrz ramki, nie wystarczy po prostu zbudować do niej lokator. Ramka, czyli element o tagu iframe, służy do osadzania zawartości stron wewnątrz innej strony. Jeżeli podasz driverowi jakiś lokator w metodzie findElement() albo findElements() to będzie on domyślnie szukał w głównym dokumencie. Oznacza to, że jeżeli szukany przez Ciebie element jest w ramce, nie zostanie on zaznaczony.

Żeby zaznaczyć element w ramce, musisz zakomunikować jakoś driverowi, że chcesz tego elementu szukać w dokumencie osadzonym we wskazanej przez Ciebie ramce. I jest to naturalnie możliwe w Selenium. Możemy przełączyć się do ramki:

  • po jej nazwie,
  • po jej id,
  • po indeksie (czyli do której z kolei ramki na stronie chcemy się przełączyć),
  • traktując ramkę jako WebElement i podając lokator do niej.

Możemy się także przełączyć do ramki-rodzica, żeby wyjść jeden poziom wyżej, albo wyjść do domyślnego czyli głównego dokumentu.

Dokumentację do metod omówionych w tej lekcji znajdziesz tutaj: Interface WebDriver.TargetLocator.

Wsparcie merytoryczne

Nie masz dostępu do wsparcia merytorycznego dla tego kursu. Wykup dostęp albo zaloguj się, by móc zadawać pytania.

  1. Niestety strona glowna nasa.gov nie posiada juz iframe'a. Znalazlem glebiej gdzie jest iframe twitter na stronie nasa.

    https://www.nasa.gov/topics/history/index.html

    Odpowiedz