class BaseFixture(unittest.TestCase): def setUp(self) -> None: self.browser = webdriver.Chrome(executable_path=CHROME_DRIVER) self.wait = WebDriverWait(self.browser, 3) self.login_page = LoginPage(self.browser) self.login_page.go_to_page() self.user_menu = UserMenu(self.browser) def tearDown(self) -> None: if self._outcome.errors[1][1] is not None: test_name = self._testMethodName result_dir = os.path.join(TEST_DIR,'test_results') if not os.path.exists(result_dir): os.mkdir(result_dir) test_dir = os.path.join(result_dir,test_name) if not os.path.exists(test_dir): os.mkdir(test_dir) self.browser.save_screenshot(os.path.join(test_dir, f"{test_name}.png")) # file = open('page_source.html', 'w') # file.write(self.browser.page_source) # file.close() with open(os.path.join(test_dir, f"{test_name}.html"), 'w') as file: file.write(self.browser.page_source) self.browser.quit() # some more changes
class BaseFixture(unittest.TestCase): def setUp(self) -> None: # browser session if os.environ.get('JOB_NAME'): chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--headless") chrome_options.add_argument("--disable-gpu") browser = webdriver.Chrome(executable_path=CHROME_PATH, options=chrome_options) else: browser = webdriver.Chrome(executable_path=CHROME_PATH) self.browser = browser self.wait = WebDriverWait(self.browser, DEFAULT_WAIT) self.long_wait = WebDriverWait(self.browser, LONG_WAIT) self.login_page = LoginPage(browser) # optional design choice: self.user_menu = UserMenu(self.browser) self.pim_page = EmployeeInformationPage(self.browser) self.add_emp_page = AddEmployeePage(self.browser) # browser.get(f'http://{DOMAIN}') # OR self.login_page.go_to_page() def tearDown(self) -> None: if self._outcome.errors[1][1]: test_results_folder = OUTPUT_DIR if not os.path.exists(test_results_folder): os.mkdir(test_results_folder) test_name = self._testMethodName self.browser.save_screenshot( f"{test_results_folder}/{test_name}.png") file = open(f"{test_results_folder}/{test_name}.html", 'w', encoding="utf-8") file.write(self.browser.page_source) file.close() # with open(f"{test_results_folder}/{test_name}.html", 'w', encoding="utf-8") as file: # file.write(self.browser.page_source) self.browser.quit()