mirror of
https://github.com/Second-Hand-Friends/kleinanzeigen-bot.git
synced 2026-03-12 10:31:50 +01:00
upgrade dependencies
This commit is contained in:
@@ -9,10 +9,10 @@ from typing import Any, Final, TypeVar
|
||||
from selenium import webdriver
|
||||
from selenium.common.exceptions import NoSuchElementException, TimeoutException, WebDriverException
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.chrome.service import Service as ChromeService, DEFAULT_EXECUTABLE_PATH as DEFAULT_CHROMEDRIVER_PATH
|
||||
from selenium.webdriver.chrome.service import Service as ChromeService
|
||||
from selenium.webdriver.chromium.options import ChromiumOptions
|
||||
from selenium.webdriver.chromium.webdriver import ChromiumDriver
|
||||
from selenium.webdriver.edge.service import Service as EdgeService, DEFAULT_EXECUTABLE_PATH as DEFAULT_EDGEDRIVER_PATH
|
||||
from selenium.webdriver.edge.service import Service as EdgeService
|
||||
from selenium.webdriver.remote.webdriver import WebDriver
|
||||
from selenium.webdriver.remote.webelement import WebElement
|
||||
from selenium.webdriver.support import expected_conditions as EC
|
||||
@@ -21,13 +21,18 @@ from selenium.webdriver.support.ui import Select, WebDriverWait
|
||||
import selenium_stealth
|
||||
import webdriver_manager.core
|
||||
from webdriver_manager.chrome import ChromeDriverManager
|
||||
from webdriver_manager.core.driver_cache import DriverCacheManager
|
||||
from webdriver_manager.core.manager import DriverManager
|
||||
from webdriver_manager.core.os_manager import ChromeType, OSType, OperationSystemManager
|
||||
from webdriver_manager.microsoft import EdgeChromiumDriverManager
|
||||
from webdriver_manager.core.utils import ChromeType, OSType
|
||||
|
||||
from .utils import ensure, pause, T
|
||||
|
||||
LOG:Final[logging.Logger] = logging.getLogger("kleinanzeigen_bot.selenium_mixin")
|
||||
|
||||
DEFAULT_CHROMEDRIVER_PATH = "chromedriver"
|
||||
DEFAULT_EDGEDRIVER_PATH = "msedgedriver"
|
||||
|
||||
|
||||
class BrowserConfig:
|
||||
|
||||
@@ -129,7 +134,7 @@ class SeleniumMixin:
|
||||
# download and install matching chrome driver
|
||||
webdriver_mgr: DriverManager
|
||||
if chrome_type == ChromeType.MSEDGE:
|
||||
webdriver_mgr = EdgeChromiumDriverManager(cache_valid_range = 14)
|
||||
webdriver_mgr = EdgeChromiumDriverManager(cache_manager = DriverCacheManager(valid_range = 14))
|
||||
webdriver_path = webdriver_mgr.install()
|
||||
env = os.environ.copy()
|
||||
env["MSEDGEDRIVER_TELEMETRY_OPTOUT"] = "1" # https://docs.microsoft.com/en-us/microsoft-edge/privacy-whitepaper/#microsoft-edge-driver
|
||||
@@ -138,7 +143,7 @@ class SeleniumMixin:
|
||||
options = self._init_browser_options(webdriver.EdgeOptions())
|
||||
)
|
||||
else:
|
||||
webdriver_mgr = ChromeDriverManager(chrome_type = chrome_type, cache_valid_range = 14)
|
||||
webdriver_mgr = ChromeDriverManager(chrome_type = chrome_type, cache_manager = DriverCacheManager(valid_range = 14))
|
||||
webdriver_path = webdriver_mgr.install()
|
||||
self.webdriver = webdriver.Chrome(service = ChromeService(webdriver_path), options = self._init_browser_options(webdriver.ChromeOptions()))
|
||||
|
||||
@@ -154,7 +159,7 @@ class SeleniumMixin:
|
||||
LOG.info("New WebDriver session is: %s %s", self.webdriver.session_id, self.webdriver.command_executor._url) # pylint: disable=protected-access
|
||||
|
||||
def get_browser_version(self, executable_path: str) -> tuple[ChromeType, str]: # -> [ chrome_type, chrome_version ]
|
||||
match webdriver_manager.core.utils.os_name():
|
||||
match OperationSystemManager.get_os_name():
|
||||
case OSType.WIN:
|
||||
import win32api # pylint: disable=import-outside-toplevel,import-error
|
||||
# pylint: disable=no-member
|
||||
@@ -180,20 +185,20 @@ class SeleniumMixin:
|
||||
if "chromium" in filename:
|
||||
return (
|
||||
ChromeType.CHROMIUM,
|
||||
webdriver_manager.core.utils.read_version_from_cmd(version_cmd, webdriver_manager.core.utils.PATTERN[ChromeType.CHROMIUM])
|
||||
webdriver_manager.core.utils.read_version_from_cmd(version_cmd, webdriver_manager.core.os_manager.PATTERN[ChromeType.CHROMIUM])
|
||||
)
|
||||
if "edge" in filename:
|
||||
return (
|
||||
ChromeType.MSEDGE,
|
||||
webdriver_manager.core.utils.read_version_from_cmd(version_cmd, webdriver_manager.core.utils.PATTERN[ChromeType.MSEDGE])
|
||||
webdriver_manager.core.utils.read_version_from_cmd(version_cmd, webdriver_manager.core.os_manager.PATTERN[ChromeType.MSEDGE])
|
||||
)
|
||||
return (
|
||||
ChromeType.GOOGLE,
|
||||
webdriver_manager.core.utils.read_version_from_cmd(version_cmd, webdriver_manager.core.utils.PATTERN[ChromeType.GOOGLE])
|
||||
webdriver_manager.core.utils.read_version_from_cmd(version_cmd, webdriver_manager.core.os_manager.PATTERN[ChromeType.GOOGLE])
|
||||
)
|
||||
|
||||
def find_compatible_browser(self) -> tuple[str, ChromeType, str] | None: # -> [ browser_path, chrome_type, chrome_version ]
|
||||
match webdriver_manager.core.utils.os_name():
|
||||
match OperationSystemManager.get_os_name():
|
||||
case OSType.LINUX:
|
||||
browser_paths = [
|
||||
shutil.which("chromium"),
|
||||
|
||||
Reference in New Issue
Block a user