File tree Expand file tree Collapse file tree 2 files changed +14
-12
lines changed Expand file tree Collapse file tree 2 files changed +14
-12
lines changed Original file line number Diff line number Diff line change 9
9
import time
10
10
import urllib3
11
11
import warnings
12
+ from importlib .util import find_spec
12
13
from selenium import webdriver
13
14
from selenium .webdriver .chrome .service import Service as ChromeService
14
15
from selenium .webdriver .edge .service import Service as EdgeService
@@ -1232,17 +1233,15 @@ def get_remote_driver(
1232
1233
device_pixel_ratio ,
1233
1234
):
1234
1235
if use_wire and selenium4_or_newer :
1235
- driver_fixing_lock = fasteners .InterProcessLock (
1236
- constants .MultiBrowser . DRIVER_FIXING_LOCK
1236
+ pip_find_lock = fasteners .InterProcessLock (
1237
+ constants .PipInstall . FINDLOCK
1237
1238
)
1238
- with driver_fixing_lock : # Prevent multi-processes mode issues
1239
- try :
1240
- from seleniumwire import webdriver
1241
- except Exception :
1239
+ with pip_find_lock : # Prevent multi-processes mode issues
1240
+ if not find_spec ("selenium-wire" ):
1242
1241
shared_utils .pip_install (
1243
1242
"selenium-wire" , version = constants .SeleniumWire .VER
1244
1243
)
1245
- from seleniumwire import webdriver
1244
+ from seleniumwire import webdriver
1246
1245
else :
1247
1246
from selenium import webdriver
1248
1247
Original file line number Diff line number Diff line change @@ -43,6 +43,7 @@ def test_anything(self):
43
43
import unittest
44
44
import urllib3
45
45
from contextlib import contextmanager
46
+ from importlib.util import find_spec
46
47
from selenium.common.exceptions import (
47
48
ElementClickInterceptedException as ECI_Exception,
48
49
ElementNotInteractableException as ENI_Exception,
@@ -5901,11 +5902,13 @@ def get_pdf_text(
5901
5902
5902
5903
with warnings.catch_warnings():
5903
5904
warnings.simplefilter("ignore", category=UserWarning)
5904
- try:
5905
- from pdfminer.high_level import extract_text
5906
- except Exception:
5907
- shared_utils.pip_install("pdfminer.six")
5908
- from pdfminer.high_level import extract_text
5905
+ pip_find_lock = fasteners.InterProcessLock(
5906
+ constants.PipInstall.FINDLOCK
5907
+ )
5908
+ with pip_find_lock: # Prevent multi-processes mode issues
5909
+ if not find_spec("pdfminer.six"):
5910
+ shared_utils.pip_install("pdfminer.six")
5911
+ from pdfminer.high_level import extract_text
5909
5912
5910
5913
if not password:
5911
5914
password = ""
You can’t perform that action at this time.
0 commit comments