• O WordPressie
    • WordPress.org
    • Dokumentacja
    • Naucz się WordPressa
    • Pomoc
    • Uwagi
  • Zaloguj się
Marek Zając Marek Zając
  • contact@zajacmarek.com Zapraszam do kontaktu
  • Strona główna
  • O mnie
  • Kursy
  • Konsultacje
  • Kanał Youtube
  • 26 czerwca 2017
  • Marek Zając
  • 0 Comments

Selenium i strona z iFrame

W Warszawie podczas prezentacji mówiłem, że developer zajmuje się m.in. UI testami więc warto potwierdzić, że sam czasami mam z nimi do czynienia :D

Dzisiaj tak na szybko opis problemu i rozwiązania.

W pracy mamy system, który m.in. ma opcję płatności poprzez PayPal. No i przy okazji robienia jednego z zadań zacząłem poprawiać stare testy automatyczne. Jednak podczas testowania procesu płatności właśnie PayPalem trafiłem na dziwny problem – przy próbie zalogowania się do PayPalowego konta dostawałem błąd, że Selenium nie znalazło elementów o podanym Id mimo, że jak byk były widoczne na ekranie i klikalne.

Po przeszukaniu kawałka internetu znalazłem przyczynę problemu – formularz logowania na stronie PayPala jest osadzony jako iFrame, a Selenium domyślnie nie widzi elementów znajdujących się w ramkach.

Rozwiązaniem jest przełączenie się najpierw na daną ramkę tak jakby była osobnym oknem.

Załóżmy, że na stronie znajduje się taki fragment kodu (w uproszczeniu):

<iframe name="my_frame">
    <button id="my_button" value="Button"/>
</iframe>

Chcąc pobrać przycisk musimy najpierw przełączyć się na ramkę „my_frame”. W Selenium dla języka C# będzie to wyglądało w ten sposób:

driver.SwitchTo().Frame("my_frame");

Po tej linijce możemy dobrać się do przycisku.

Related Posts
  • Asynchroniczność w ASP.NET Core 16 stycznia 2020
  • Nie lubię TEGO projektu! 15 stycznia 2020
  • Pierwsze portfolio na GitHubie – Przewodnik 14 stycznia 2020

Leave a Comment Cancel Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Copyright 2020 Bizix, All rights reserved.
  • POLITYKA PRYWATNOŚCI I PLIKÓW COOKIES