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
1
4
import base64
2
5
import functools
3
6
import glob
25
28
from selenium .webdriver .remote .webelement import WebElement
26
29
from selenium .webdriver .support .wait import WebDriverWait , TimeoutException , NoSuchElementException
27
30
from selenium .webdriver .support import expected_conditions as EC
31
+ from weakref import ReferenceType , ref
28
32
29
33
from . import config , cv2find
30
34
from .browsers import BROWSER_CONFIGS , Browser , PageLoadStrategy
39
43
logger = logging .getLogger (__name__ )
40
44
41
45
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
+
42
54
class WebBot (BaseBot ):
43
55
KEYS = Keys
44
56
DEFAULT_DIMENSIONS = (1600 , 900 )
@@ -77,6 +89,8 @@ def __init__(self, headless=False):
77
89
78
90
self ._download_folder_path = os .getcwd ()
79
91
92
+ atexit .register (_cleanup , ref (self ))
93
+
80
94
def __enter__ (self ):
81
95
pass
82
96
Original file line number Diff line number Diff line change 7
7
import typing
8
8
import platform
9
9
10
+ from webdriver_manager .core .driver_cache import DriverCacheManager
10
11
from botcity .web import WebBot , Browser , By , browsers
11
12
from webdriver_manager .chrome import ChromeDriverManager
12
13
from webdriver_manager .firefox import GeckoDriverManager
@@ -97,7 +98,8 @@ def download_driver(request):
97
98
folder_driver = tempfile .mkdtemp ()
98
99
browser = request .config .getoption ("--browser" ) or Browser .CHROME
99
100
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 ()
101
103
yield installed_driver
102
104
shutil .rmtree (folder_driver )
103
105
You can’t perform that action at this time.
0 commit comments