W tej lekcji omówimy zamykanie sesji i okna przeglądarki, bo wbrew pozorom, to nie jest to samo.
Â
Zamykanie sesji i okna przeglądarki: linki i materiały
Metody zamykajÄ…ce sesjÄ™ i okna przeglÄ…darki
Metody, o których jest mowa w tej lekcji to:
- Close() – ta metoda zamyka bieżące okno przeglÄ…darki (w tym kontekÅ›cie okno i zakÅ‚adka sÄ… traktowane tak samo, wiÄ™c oznacza to również zamkniÄ™cie bieżącej zakÅ‚adki); ta metoda nie zamyka sesji;
- Quit() – ta metoda zamyka sesjÄ™; oznacza to również, że chromedriver.exe (albo inny driver, jeżeli nie używamy Chrome’a) znika nam z procesów.
Dokumentacja Selenium: linki
Sygnatury wszystkich wyjaÅ›nionych dzisiaj metod znajdujÄ… z w interfejsie IWebDriver. Ponieważ to interfejs, nie zobaczysz tam implementacji tych metod. Interfejs to raczej coÅ› w rodzaju kontraktu czy umowy mówiÄ…cej o tym jakie metody ma implementować każda klasa implementujÄ…ca ten interfejs. Interfejs ten jest zaimplementowany przez klasÄ™ RemoteWebDriver – jak wyglÄ…da ta klasa i omówione metody możesz podejrzeć tutaj.
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; namespace TestowyProjekt.DriverMethods { class QuitAndClose { IWebDriver driver; [SetUp] public void Setup() { driver = new ChromeDriver(); driver.Manage().Window.Position = new System.Drawing.Point(8, 30); driver.Manage().Window.Size = new System.Drawing.Size(1290, 730); driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(5); } [Test] public void gotToGoogleTest() { driver.Navigate().GoToUrl("https://google.pl"); } [TearDown] public void TearDown() { //driver.Close(); driver.Quit(); } } }
Hmm,
Tak z ciekawości. Mogłabyś podać przykład z życia wzięte kiedy się używa Quit() a kiedy Close(). Popraw mnie proszę jeśli się mylę. Jeśli np. użyjemy Close() to możemy jeszcze potem otworzyć inną stronę używając tego samego obiektu (drivera/sterownika) prawda?
A co w przypadku gdy mamy 3 zakładki? Musimy wtedy użyć 3 x Close()? Jeśli tak to skąd Selenium będzie wiedzieć o którą zakładkę stronę nam chodzi?
Quit() ubija cały proces i amen - nic już nie zrobimy - jeśli chcemy coś jeszcze otworzyć to musimy zadeklarować nowego drivera/sterownik?
Halko! No sam sobie odpowiedziaÅ‚eÅ› kiedy używaÄ [...] CaÅ‚ość odpowiedzi widoczna dla kursantów.
Dziękuję.