From b0c1afb2fd0bd38b79996e20e7dc629bd1f03804 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 6 Jun 2022 15:16:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E6=9E=90=E6=9E=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- browser/IDriver.py | 14 ++++++++++---- browser/chrome.py | 3 --- browser/edge.py | 3 --- browser/manager.py | 3 +++ 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/browser/IDriver.py b/browser/IDriver.py index cb8b353..d52fb4d 100644 --- a/browser/IDriver.py +++ b/browser/IDriver.py @@ -1,11 +1,17 @@ import contextlib +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from selenium.webdriver.remote.webdriver import WebDriver class IDriver(): - def new_tab(self) -> str: - ... + browser: "WebDriver" - def get_current_tab(self) -> str: + def __del__(self): + self.browser.stop_client() + + def new_tab(self) -> str: ... def change_tab(self, tab_handler: str): @@ -16,7 +22,7 @@ class IDriver(): @contextlib.contextmanager def op_tab(self, tab_handler: str): - cur_handle = self.get_current_tab() + cur_handle = self.browser.current_window_handle if tab_handler == "": tab_handler = cur_handle try: diff --git a/browser/chrome.py b/browser/chrome.py index 939a3c9..488249b 100644 --- a/browser/chrome.py +++ b/browser/chrome.py @@ -45,9 +45,6 @@ class ChromeDriver(IDriver): return self.browser.switch_to.window(tab_handler) - def get_current_tab(self) -> str: - return self.browser.current_window_handle - def open_url(self, url: str, tab_handler: str = ""): with self.op_tab(tab_handler): self.browser.get(url) diff --git a/browser/edge.py b/browser/edge.py index 4bb2e5a..3764f02 100644 --- a/browser/edge.py +++ b/browser/edge.py @@ -38,9 +38,6 @@ class EdgeDriver(IDriver): return _handle return "" - def get_current_tab(self) -> str: - return self.browser.current_window_handle - def change_tab(self, tab_handler: str): if tab_handler not in self.browser.window_handles: return diff --git a/browser/manager.py b/browser/manager.py index 94bb83f..27d276e 100644 --- a/browser/manager.py +++ b/browser/manager.py @@ -71,6 +71,9 @@ class BrowserManager(): if tab_info not in self._tabs: self._tabs.append(tab_info) + def terminate(self): + del self._driver + class TabInfo(object): TAB_TYPE_OTHER = "other"