Cześć,
Mam taki problem, ponieważ po wykonaniu testu/testów przeglądarka jest zamykana automatycznie. Dodam, że nie mam nigdzie wpisanej linijki self.driver.quit().
mój tearDown:
def tearDown(self):
pass
Jakiś pomysł dlaczego tak się dzieje ? Jak będzie potrzebny mogę wkleić cały kod
Hej Bartek
Trafne spostrzeżenie. Takie zachowanie wynika z działania wbudowanego Runnera który uruchamiania testy w PyCharam. Runner PyCharma obecnie czyści automatycznie testy. Jest to trochę nieintuicyjne gdyż uruchomienie testów z konsoli da Tobie inny wynik:
Użyj zakładki Terminal znajdującej się na samym dole IDE i tam wklej polecenie manualnego uruchomienia testów:
python -m unittest auto_test_2.py
Powinno pomóc. Generalnie trzymamy się koncepcji używania metod czyszczących gdyż kod naszych testów powinien być łatwo uruchamiany nie tylko przez PyCharma a jak widzisz zmieniają się funkcje i zachowania wbudowanego w PyCharma Runnera testów i trzeba być w tym temacie ostrożnym.
Dzięki za zwrócenie uwagi na ten ciekawy przypadek 😀
EDIT:
Wyniesienie inicjalizacji drivera po za deklarację klasy spowoduje, że przeglądarka przestanie się zamykać nawet przy uruchomieniu z Runnera z PyCharma.
import unittest from selenium import webdriver driver = webdriver.Chrome(executable_path=r"C:\TestFiles\chromedriver.exe") class MainTests(unittest.TestCase): def test_demo_login(self): driver.get('https://demobank.jaktestowac.pl/logowanie_etap_1.html') title = driver.title print(title) assert 'Demobank - Bankowość Internetowa - Logowanie' == title
O tak – wystarczy wynieść inicjalizację drivera po za klasę czyli przed nazwę klasy i wtedy przeglądarka się nie zamknie – dodam ten kod do głównej odpowiedzi:D
Oczywiście ogólnie w testach wykorzystuję self.driver.quit() po zakończeniu testów, ale zdziwiło mnie to przy chwilowym wykomentowaniu tej linijki.
Co ciekawe mam inny projekt w którym otworzenie przeglądarki mam dla klasy (nie w metodzie) i testy są wykonywane w tym samym oknie przeglądarki i mam:
def tearDownClass(self):
pass
I co ciekawe tutaj okno przeglądarki nie jest zamykane przez Runnera