From 28b81f7be261810b5600da7f515695fbef43810f Mon Sep 17 00:00:00 2001 From: g1879 Date: Sun, 22 Jan 2023 00:05:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E4=B8=8B=E8=BD=BD=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/chromium_page.py | 2 +- DrissionPage/session_page.py | 7 +++++-- DrissionPage/session_page.pyi | 1 + DrissionPage/web_page.py | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/DrissionPage/chromium_page.py b/DrissionPage/chromium_page.py index 25fbe06..5a32685 100644 --- a/DrissionPage/chromium_page.py +++ b/DrissionPage/chromium_page.py @@ -421,7 +421,7 @@ class ChromiumDownloadSetter(DownloadSetter): self._page.run_cdp('Page.setDownloadBehavior', behavior='allow', downloadPath=path, not_change=True) if self._page._download_kit is not None: - self._page._download_kit.goal_path = path + self._page.download.goal_path = path def use_browser(self): """设置使用浏览器下载文件""" diff --git a/DrissionPage/session_page.py b/DrissionPage/session_page.py index d11c89e..1b88eb6 100644 --- a/DrissionPage/session_page.py +++ b/DrissionPage/session_page.py @@ -28,6 +28,7 @@ class SessionPage(BasePage): """ self._response = None self._download_kit = None + self._download_set = None self._create_session(session_or_options) timeout = timeout if timeout is not None else self.timeout super().__init__(timeout) @@ -126,7 +127,9 @@ class SessionPage(BasePage): @property def download_set(self): """返回用于设置下载参数的对象""" - return DownloadSetter(self) + if self._download_set is None: + self._download_set = DownloadSetter(self) + return self._download_set def get(self, url, show_errmsg=False, retry=None, interval=None, timeout=None, **kwargs): """用get方式跳转到url @@ -340,7 +343,7 @@ class DownloadSetter(object): path = path if path is None else str(path) self._page._download_path = path if self._page._download_kit is not None: - self._page._download_kit.goal_path = path + self._page.download.goal_path = path def check_headers(kwargs, headers, arg) -> bool: diff --git a/DrissionPage/session_page.pyi b/DrissionPage/session_page.pyi index 9015690..4f052d7 100644 --- a/DrissionPage/session_page.pyi +++ b/DrissionPage/session_page.pyi @@ -26,6 +26,7 @@ class SessionPage(BasePage): self._response: Response = ... self._download_path: str = ... self._download_kit: DownloadKit = ... + self._download_set: DownloadSetter = ... self._url_available: bool = ... self.timeout: float = ... self.retry_times: int = ... diff --git a/DrissionPage/web_page.py b/DrissionPage/web_page.py index 369fb55..e4fbd40 100644 --- a/DrissionPage/web_page.py +++ b/DrissionPage/web_page.py @@ -499,7 +499,7 @@ class WebPageDownloadSetter(ChromiumDownloadSetter): self._page._download_path = path if self._page._download_kit is not None: - self._page._download_kit.goal_path = path + self._page.download.goal_path = path if self._page._has_driver: try: