From 8c10aa1848d578e80662382f255b798f4231af87 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 5 Jun 2022 09:37:57 +0800 Subject: [PATCH] =?UTF-8?q?BrowserManage=E7=AE=80=E5=8D=95=E5=B0=81?= =?UTF-8?q?=E8=A3=85=E7=AE=A1=E7=90=86=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- browser/__init__.py | 4 +--- browser/manager.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 browser/manager.py diff --git a/browser/__init__.py b/browser/__init__.py index b8e985e..36a775b 100644 --- a/browser/__init__.py +++ b/browser/__init__.py @@ -1,3 +1 @@ -from browser.edge import EdgeDriver - -driver = EdgeDriver() \ No newline at end of file +from browser.manager import BrowserManager diff --git a/browser/manager.py b/browser/manager.py new file mode 100644 index 0000000..2fd9118 --- /dev/null +++ b/browser/manager.py @@ -0,0 +1,25 @@ +from config.helper import config +from browser.edge import EdgeDriver +from browser.chrome import ChromeDriver +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from typing import Type + from browser.IDriver import IDriver + + +class BrowserManager(): + _mapping: "dict[str, Type[IDriver]]" = { + "chrome": ChromeDriver, + "edge": EdgeDriver + } + + def __init__(self): + _config = config()["webdriver"]["use"] + if _config not in self._mapping: + raise Exception("不支持的浏览器") + self._driver = self._mapping[_config]() + + @property + def driver(self): + return self._driver