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 w C# 47. Zrzuty ekranu w Selenium

Zrzuty ekranu w Selenium mogą nam pomóc zarówno w dokumentacji wykonania testu jak i np. debugowaniu naszych testów automatycznych. W tej lekcji pokażę Ci jak wykonywać screenshot na koniec testu, chociaż kod, który pokażę, możesz wrzucić właściwie gdzie chcesz.

Zrzuty ekranu w Selenium

Korzystając z Selenium dysponujemy interfejsem ITakesScreenshot. To właśnie on pozwoli nam użyć drivera do wykonania zrzutu ekranu.

Wykonanie i zapisanie zrzutu ekranu

Najpierw musimy rzutować drivera na ITakesScreenshot. Na takim driverze możemy wywołać metodę GetScreenshot(). Metoda ta zwraca obiekt typu Screenshot.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Samo wykonanie zrzutu ekranu to nie wszystko, musimy go jeszcze gdzieś zapisać.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Wykonywanie screenshota na koniec testu

Jeżeli chcesz wykonywać zrzut ekranu na koniec każdego testu to w NUnicie musimy do wrzucić do metody oznaczonej [TearDown], czyli metody, która wykonuje się po każdym teście. Pamiętaj tylko, żeby umieścić ten kod przed driver.Quit(). Inaczej ubijesz sobie drivera zanim go użyjesz do wykonania screenshota.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Zmiana nazwy pliku z zrzutem ekranu

Jak zapewne zauważyłeś nadajemy naszemu zrzutowi nazwę na sztywno. Co w przypadku, gdy kolejny raz uruchomimy test? Screenshot znowu się wykona ale nowy plik nadpisze stary.

Żeby tego uniknąć możemy zmienić nazwę kolejnego pliku uzależniając ją od daty i godziny. Przykład takiej implementacji znajdziesz poniżej.

[TearDown]
public void QuitDriver()
{
    Screenshot image = ((ITakesScreenshot)driver).GetScreenshot();
    string dateTime = DateTime.Now.ToString("yyyy-MM-dd HHmmss");
    image.SaveAsFile(@"E:\screenshots\" + dateTime + ".png");        
    driver.Quit();
 }

[/hidden]

Dokumentację do omawianego w tej lekcji interfejsu znajdziesz tutaj.

Kod

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Wsparcie merytoryczne

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