File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change 1+ from __future__ import annotations
2+
3+ import atexit
14import base64
25import functools
36import glob
2528from selenium.webdriver.remote.webelement import WebElement
2629from selenium.webdriver.support.wait import WebDriverWait, TimeoutException, NoSuchElementException
2730from selenium.webdriver.support import expected_conditions as EC
31+ from weakref import ReferenceType, ref
2832
2933from . import config, cv2find
3034from .browsers import BROWSER_CONFIGS, Browser, PageLoadStrategy
3943logger = logging.getLogger(__name__)
4044
4145
46+ def _cleanup(bot: ReferenceType[WebBot]):
47+ if bot() is not None:
48+ try:
49+ bot().stop_browser()
50+ except Exception:
51+ pass
52+
53+
4254class WebBot(BaseBot):
4355 KEYS = Keys
4456 DEFAULT_DIMENSIONS = (1600, 900)
@@ -77,6 +89,8 @@ def __init__(self, headless=False):
7789
7890 self._download_folder_path = os.getcwd()
7991
92+ atexit.register(_cleanup, ref(self))
93+
8094 def __enter__(self):
8195 pass
8296
Original file line number Diff line number Diff line change 77import typing
88import platform
99
10+ from webdriver_manager.core.driver_cache import DriverCacheManager
1011from botcity.web import WebBot, Browser, By, browsers
1112from webdriver_manager.chrome import ChromeDriverManager
1213from webdriver_manager.firefox import GeckoDriverManager
@@ -97,7 +98,8 @@ def download_driver(request):
9798 folder_driver = tempfile.mkdtemp()
9899 browser = request.config.getoption("--browser") or Browser.CHROME
99100 manager = factory_driver_manager(browser=browser)
100- installed_driver = manager(path=folder_driver).install()
101+ cache_manager = DriverCacheManager(root_dir=folder_driver)
102+ installed_driver = manager(cache_manager=cache_manager).install()
101103 yield installed_driver
102104 shutil.rmtree(folder_driver)
103105
You can’t perform that action at this time.
0 commit comments