
Hello world!
Dośc istotna informacja(aktualizacja) na temat koronowirusa, proszę przeczytaj – > https://gregkaqa.pl/index.php/koronawirus/
lub bezpośrednio – > https://www.gov.pl/web/koronawirus/wprowadzamy-nowe-zasady-bezpieczenstwa-w-zwiazku-z-koronawirusem
Zrzutka na maski ochronne z drukarki 3D kosz jednej 3 złote – > https://zrzutka.pl/cba7u5
A więc dzisiejszy wpis będzie poświęcony, pisaniu automatów w języku Microsoftu czyli C#. Będzie to relacja C# z frameworkiem NUnit.
Zaczynamy od pobrania jeśli nie posiadacie pakiet Visual Studio 2019.

Instalacja Visual Studio 2019





Po lewej od przycisku zainstaluj jest mały wybór instaluj podczas pobierania lub pobierz i dopiero potem zainstaluj, wybierzcie co chcecie.




Tylko ciemny motyw i zostawiamy ogólne ustawiania środowiska deweloperskiego.

Tworzenie pierwszego projektu

Ja kontynuuje bez kodu.





Pobierz chrome driver, najpierw sprawdz jaki masz jak 80 to pobierasz 80 i sprawdzaj dalsze numerki, za nowa przeglądarka względem binarnego driver, się po prostu wywali przy teście.




Tutaj ważny przykład driver przeglądarki pobrałem 81, jak to z rozmachu bywa ten na samej górze, a się okazuje ze chrome mam 80tke i nie ma aktualizacji, wiec 81 chrome to może być kanał beta, trzeba zaniżyć 🙂
Aaaa bardzo wazną rzeczą jak chcecie usunąć stary i podmienić nowym.


Mimo, zamknięcia przeglądarki i testów driver dalej siedzi w ramie i go nie usuniesz, trzeba go zabić ręcznie, ale też w testach napisać metodę po testach do zabijania 🙂


Kody testów
using NUnit.Framework;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using System;
namespace TestyWSharku
{
public class Tests
{
IWebDriver driver;
string tytulniepoprawny = "wp.pl";
string tytulpoprawny = "DuckDuckGo — Prywatność — jeszcze prostsza.";
[SetUp]
public void startBrowserSetup()
{
try
{
driver = new ChromeDriver("C:\\");
}
catch
{
// Assert.Fail("Test się wywalił gdyż coś z driverem Chrome !!!");
}
}
[Test]
public void enterDuckDuckGo()
{
driver.Url = "http://www.duckduckgo.com";
try
{
Assert.AreEqual(driver.Title, tytulpoprawny);
}catch
{
Assert.Fail("Test się wywalił gdyż nie udało się pobrać tytułu !!!");
}
}
[OneTimeTearDown]
public void GlobalTeardown()
{
driver.Close();
}
}
}
Kod wygląda następująco.
W assercie możecie zmienić na zmienną tytulniepoprawny, aby zobaczyc jak zachowuje się kompilator, w przypadku wywalenia się na asercji.
Dobra trochę podrasowałem, żebyście mieli co analizować.

Pamiętajcie by stworzyć folder do screenów, na razie statyczne ścieżki.
Dodałem drugi test, który wyszukuje test wciska szukaj i robi screenshota.
Plus przeglądarka odpala się przed każdym testem jeśli macie:
[SetUp] przed metodą konfiguracji drivera, [OneTimeSetUp], zaś ta adnotacja robi to raz na cały ‘zestaw’ testów w danej klasie.
No i standardowo macie kod, może kiedyś ogarnę wrzucanie, to na githuba, ale zobaczę.
using NUnit.Framework;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using System;
namespace TestyWSharku
{
public class Tests
{
IWebDriver driver;
string date = DateTime.Now.ToString();
string tytulniepoprawny = "wp.pl";
string tytulpoprawny = "DuckDuckGo — Prywatność — jeszcze prostsza.";
//[SetUp]
[OneTimeSetUp]
public void startBrowserSetup()
{
try
{
driver = new ChromeDriver("C:\\");
driver.Manage().Window.Maximize();
}
catch
{
// Assert.Fail("Test się wywalił gdyż coś z driverem Chrome !!!");
}
}
[Test]
public void enterDuckDuckGo()
{
driver.Url = "http://www.duckduckgo.com";
try
{
Assert.AreEqual(driver.Title, tytulpoprawny);
}catch
{
Assert.Fail("Test się wywalił gdyż nie udało się pobrać tytułu !!!");
}
}
[Test]
public void goToWeatherTakeScreenshot()
{
try
{
IWebElement inputfield = driver.FindElement(By.Id("search_form_input_homepage"));
IWebElement searchbutton = driver.FindElement(By.Id("search_button_homepage"));
inputfield.SendKeys("Pogoda Lublin");
searchbutton.Click();
string date = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");
date = date.Replace(':', '-');
date = date.Replace('.', '-');
date = date.Replace(' ', '_');
Screenshot image = ((ITakesScreenshot)driver).GetScreenshot();
image.SaveAsFile("C:\\Screenshot\\" + date + ".png", ScreenshotImageFormat.Png);
}
catch
{
Assert.Fail("Uuu nie udało się zrzutu zapisać ! :(");
}
}
[OneTimeTearDown]
public void killDriver()
{
driver.Close();
}
}
}
Kod wyżej, powodzenia. W następnym wpisie dotyczącym C# będzie wydzielenie klas, elementów. Bardziej zaawansowane pomysły na testy.
Może pozbędziemy się plików binarnych .exe driverów.
Plus sprawdzimy na Firefoxa, czy śmiga na tej często problematycznej przeglądarce.
I to by było na tyle trzymajcie się, siedźcie w domach, czytajcie książki, oglądajcie filmy, spędźcie ten czas z rodziną – będzie dobrze ! 🙂