|
| 1 | +import os |
| 2 | + |
1 | 3 | import pytest |
| 4 | +from selenium.webdriver.support.event_firing_webdriver import EventFiringWebDriver |
2 | 5 |
|
3 | 6 | from drivers.driver_factory import Driver |
| 7 | +from drivers.event_listener import AppEventListener |
4 | 8 |
|
5 | 9 |
|
6 | 10 | @pytest.hookimpl |
@@ -50,14 +54,38 @@ def device(request): |
50 | 54 | @pytest.fixture(scope="function") |
51 | 55 | def driver(request): |
52 | 56 | platform = request.config.getoption("--platform") |
53 | | - driver = None |
54 | 57 |
|
55 | 58 | try: |
| 59 | + e_listener = AppEventListener() |
56 | 60 | driver = Driver.get_driver(platform) |
| 61 | + event_driver = EventFiringWebDriver(driver, e_listener) |
57 | 62 | except Exception as e: |
58 | 63 | pytest.fail(f"Failed to initialize driver: {e}") |
59 | 64 |
|
60 | | - yield driver |
| 65 | + yield event_driver |
| 66 | + |
| 67 | + if event_driver is not None: |
| 68 | + event_driver.quit() |
| 69 | + |
61 | 70 |
|
62 | | - if driver is not None: |
63 | | - driver.quit() |
| 71 | +# def pytest_runtest_makereport(item, call): |
| 72 | +# """Capture screenshot on test failure.""" |
| 73 | +# if call.excinfo is not None: |
| 74 | +# driver = item.funcargs.get("driver", None) |
| 75 | +# |
| 76 | +# if driver is not None: |
| 77 | +# screenshot_dir = "reports/screenshots" |
| 78 | +# os.makedirs( |
| 79 | +# screenshot_dir, exist_ok=True |
| 80 | +# ) # Create directory if it does not exist |
| 81 | +# screenshot_path = os.path.join(screenshot_dir, f"{item.name}.png") |
| 82 | +# |
| 83 | +# try: |
| 84 | +# driver.save_screenshot(screenshot_path) |
| 85 | +# # log.info(f"Screenshot saved to: {screenshot_path}") |
| 86 | +# except Exception as e: |
| 87 | +# pass |
| 88 | +# # log.error(f"Failed to save screenshot: {e}") |
| 89 | +# else: |
| 90 | +# pass |
| 91 | +# # log.error("Driver instance is not available for capturing screenshot.") |
0 commit comments